预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。预处理命令以符号“#”开头。
常用的预处理指令包括:
宏定义:#define
文件包含:#include
条件编译:#if、#elif、#ifndef、#ifdef、#endif、#undef
错误信息指令:#error
#line指令
布局控制:#pragma
宏定义
宏定义又称为宏代换、宏替换,简称“宏”。宏替换只作替换,不做计算,不做表达式求解。宏定义分带参数的宏定义和不带参数的宏定义。在带参数的宏定义,宏名和参数的括号间不能有空格。
宏定义不分配内存,变量定义分配内存。
宏展开不占运行时间,只占编译时间;函数调用占运行时间(分配内存、保留现场、值传递、返回值)。
出现在宏定义中的#运算符把跟在其后的参数转换成一个字符串,有时把这种用法的#称为字符串化运算符。例如:
#define STR(n)\"abcd\"#n
int main()
{
cout<<STR(6)<<endl;
system(\"pause\");
return 0;
}
本文地址:https://www.stayed.cn/item/26162
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我