ANSI C 预处理简单总结
来源:互联网 发布:2017编程需要排行榜 编辑:程序博客网 时间:2024/05/21 15:50
ANSI C 预处理命令解析
具体命令如下:
#define : 宏定义
#error : 强迫编译程序停止编译,并输出错误信息,主要用于程序调试
#include : 是编译程序将另一个源文件嵌入到带有#include的源文件中
#if-------#elif------#else-------#endif : 预编译分支命令。与C中 if-----elseif-----else-----类似
根据#if或者#elif后面的常量表达式决定编译那个分支的代码
#ifdef : 如果后面的常量已经定义,则返回true,编译其后的代码
#ifndef : 如果后面的常量未定义,则返回true,编译其后的代码
#undef : 撤销已定义的宏名
#line : 改变预定义宏 _LINE_ 和 _FILE_ 的内容
#pragma : 使用该预处理命令可向编译程序传送各种指令,编译程序可设置编译期支持C99
分类:
文件包含命令:#include
宏定义命令:#define #undef
条件编译命令:#if #else #ifdef #ifndef #endif
其他编译命令:#line #error #pragma
宏定义命令:
1 无参数宏定义:
#define宏名 字符串
#define PI 3.14
2 带参数宏定义:
#define宏名(形参表) 字符串
#define FUN(A,B)2*A*B
3 undef的使用主要将宏名局限在仅需要的代码段
#undef宏名
#undef FUN
4 操作符# 和 ## 的区别---#define顶以后使用该操作符替换—及在字符串中输出实参
a. #define AREA(x,y) printf(“Length “#x” Width “#y” and the area = :%d \n”,(x)*(y));
b. #define VAR(n) v##n VAR(1) === v1
条件编译命令:
1 #if---#else---#endif
#if 常量表达式
程序段1
#else
程序段2
#endif
2 #elif
#if常量表达式1
程序段1
#elif常量表达式2
程序段2
#elif常量表达式n
程序段n
#else
程序段m
#endif
#define OS WIN
#if OS==WIN
#include“win.h”
#elif OS==LINUX
#include “linux.h”
#elif OS=MAC
#include“mac.h”
#endif
3 #ifdef #ifndef 对上面的改进,不再进行判断,判断是否定义符号常量
#ifdef
#ifdef标识符
程序段1
#else
程序段2
#endif
#ifndef与上述相反
#ifndef标识符
程序段1
#else
程序段2
#endif
其他预处理命令:
1 预定义宏名
__DATE__ 当前源程序的创建日期
__FILE__ 当前源程序的文件名称
__LINE__ 当前被编译的代码的行号
__STDC__ 饭后编译期是否支持标准C 若为1 则符合
__TIME__ 当前源程序的创建时间
2 重复行号和文件名命令#line
#linenumber[“filename”]
3 修改编译期设置命令#pragama
#pragamapara --- para是参数可使用的较多
常用命令:
Message参数,在编译信息中输出窗口输出对应的信息
#pragama message(消息文本)
Code_seg参数
#pragamacode_seg( [ “ section-name” [,”section-class” ] ] )
设置程序中函数代码存放的代码段,开发驱动中用到
Once保证头文件被编译一次
#pragama once
4 产生错误信息命令#error
#error错误信息
Exp:
#if__STDC__ !=1
#errorNot ANSI C
#endif
- ANSI C 预处理简单总结
- ANSI C语言总结
- C/C++预处理 ISO/ANSI C标准译文与注解
- C/C++预处理 ISO/ANSI C标准译文与注解
- C/C++预处理 ISO/ANSI C标准译文与注解
- C/C++预处理 ISO/ANSI C标准译文与注解
- C/C++预处理 ISO/ANSI C标准译文与注解
- C语言预处理总结
- C 预处理总结
- ISO-ANSI C/C++ 预处理器测试文本
- ISO-ANSI C/C++ 预处理器测试文本
- c/c++预处理指令总结
- c/c++预处理指令总结
- c/c++预处理学习总结
- C/C++预处理器总结
- C语言预处理命令总结
- C语言预处理指令总结
- C语言预处理命令总结
- android监听edittext输入事件
- Qt仿QQ截图
- ****android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法
- HTML5各引擎显示效率比较
- 函数之求sinh(x)
- ANSI C 预处理简单总结
- C++ volatile关键字
- nefu 2 猜想(素数&&筛选)
- IPC之管道、FIFO、socketpair
- DevExpress PopMenu 如何在鼠标点击的位置显示右键菜单
- 函数之最大公约数和最小公倍数
- DevExpress TextEdit如何设置文本输入框只能输入数字
- visual svn修改新url地址方法(linux,windows,centos)
- boost使用split分割字符串