@zhengyuhong
2015-05-31T07:59:37.000000Z
字数 918
阅读 1385
gcc g++ linux
g++是gcc的一个版本,默认语言设置为C++,在连接的时候自动包含标准C++库
| 指示字 | 描述 |
|---|---|
| #define | 定义宏名字,预处理程序会把这个宏扩展到使用该名字的位置 |
| #elif | 由#if指示字提供一个用于计算的可选表达式 |
| #else | 如果#if、#ifdef或#ifndef为假,提供一个用于编译的可选代码集合 |
| #if | 如果计算算术表达式的结果为非零值,就编译指示字和它匹配的#endif之间 的代码 |
| #ifdef | 如果已经定义了指定的宏,就编译指示字和它匹配的#endif之间的代码 |
| #ifndef | 如果没有定义指定的宏,就编译指示字和它匹配的#endif之间的代码 |
| #include_next | 和#include一样,但该指示字从查找到的目录之后的目录开始查找 |
| #line | 指出行号以及可能的文件名,报告给编译程序,用于创建目标文件中的调试信息 |
| #pragma | 提供额外信息的标准方法,可用来指出一个编译程序或一个平台。 |
| #undef | 删除前面用 |
| #define | 指示字创建的定义 |
| #warning | 由预处理程序创建的一个警告信息 |
| ## | 连续操作符,可用于宏内将两个字符串连接成一个 |
#ifndef __linux__#error "This is not linux os"#endif
C++和C可以自然混合,但是有一个区别就是函数名,C语言使用原来简单的函数名,不考虑参数和参数类型(所有C语言没有函数重载),而C++总是将它的参数和参数类型当作函数签名,就是函数的一部分。还好C++提供一些特殊的功能可以声明C函数,也就是说,C++程序可以直接声明并且调用C函数。
//main.cpp#include <iostream>extern "C" void hello();int main(int argc, char* argv[]) {hello();return 0;}//hello.c#include <stdio.h>void hello() {printf("hello\n");}
gcc -c main.cpp -o main.ogcc -c hello.c -o hello.ogcc -o main hello.o main.o -lstdc++
