关于标准C语言的预定义宏【转】】的更多相关文章

标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义.下面预定义宏表,被我抄了下来. __LINE__  当前程序行的行号,表示为十进制整型常量__FILE__  当前源文件名,表示字符串型常量__DATE__转换的日历日期,表示为Mmm dd yyyy 形式的字符串常量,Mmm是由asctime产生的.__TIME__ 转换的时间,表示"hh:mm:ss"形式的字符串型常量,是有asctime…
预定义宏就是已经预先定义好的宏,我们可以直接使用,无需再重新定义.ANSI C 规定了以下几个预定义宏,它们在各个编译器下都可以使用: __LINE__:表示当前源代码的行号: __FILE__:表示当前源文件的名称: __DATE__:表示当前的编译日期: __TIME__:表示当前的编译时间: __STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1: __cplusplus:当编写C++程序时该标识符被定义. 预定义宏演示: #include <stdio.h> #incl…
http://blog.csdn.net/hgl868/article/details/7058906 替代字符串: #define DOWNLOAD_IMAGE_LOG /var/log/png.log #define WGET_IMAGE_(x) "wget -b -c -P ./media/video -a " x " -i  mp4url.txt" WGET_IMAGE_(DOWNLOAD_IMAGE_LOG)就是 wget -b -c -P ./media…
标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义.下面预定义宏表,被我抄了下来.__LINE__  当前程序行的行号,表示为十进制整型常量__FILE__  当前源文件名,表示字符串型常量__DATE__转换的日历日期,表示为Mmm dd yyyy 形式的字符串常量,Mmm是由asctime产生的.__TIME__ 转换的时间,表示"hh:mm:ss"形式的字符串型常量,是有asctime产…
作为第一篇,首先要说一下C++11与C99的兼容性. C++11将 对以下这些C99特性的支持 都纳入新标准中: 1) C99中的预定义宏 2) __func__预定义标识符 3) _Pragma操作符 4) 不定参数宏定义以及__VA_ARGS__ 5) 宽窄字符串连接 这些特性并不像语法规则一样常用,并且有的C++编译器实现也都先于标准地将这些特性实现,因此可能大多数程序员没有发现这些不兼容.但将这些C99的特性在C++11中标准化无疑可以更广泛地保证两者的兼容性.我们来分别看一下. 这次,…
/*------------------------------------- predef.c -- 预定义宏和预定义标识符 -------------------------------------*/ #include <stdio.h> void why_me(void); int main() { printf("The file is %s.\n", __FILE__); printf("The data is %s.\n", __DATE_…
一.预定义__GNUC__宏 1 __GNUC__ 是gcc编译器编译代码时预定义的一个宏.需要针对gcc编写代码时, 可以使用该宏进行条件编译. 2 __GNUC__ 的值表示gcc的版本.需要针对gcc特定版本编写代码时,也可以使用该宏进行条件编译. 3 __GNUC__ 的类型是"int",该宏被扩展后, 得到的是整数字面值.可以通过仅预处理,查看宏扩展后的文本. 示例: #include <assert.h> #include <stdio.h> #in…
一.预定义__GNUC__宏 1 __GNUC__ 是gcc编译器编译代码时预定义的一个宏.需要针对gcc编写代码时, 可以使用该宏进行条件编译. 2 __GNUC__ 的值表示gcc的版本.需要针对gcc特定版本编写代码时,也可以使用该宏进行条件编译. 3 __GNUC__ 的类型是“int”,该宏被扩展后, 得到的是整数字面值.可以通过仅预处理,查看宏扩展后的文本. 示例: #include <assert.h> #include <stdio.h> #include <…
参考帖子: (1)MSDN上专门讲预定义宏:https://msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspx (2)VS中属性页的配置介绍:http://m.blog.csdn.net/blog/justkong/7949008 (3)判断程序是否在win64环境中运行:http://fenying.blog.163.com/blog/static/10205599320137224339263/ (4)http://fenying.…
在C++中支持一种预定义宏.比如: __FILE__: 就是当前源代码文件名 __LINE__: 就是当前源代码的行号 这些宏可以在printf等语句中直接作为字符串使用,调试的时候很方便. 如下代码所示: int _tmain(int argc, _TCHAR* argv[]) { printf("Line:%d", __LINE__); return 0; } 执行后如图: Line:12 为了方便使用,微软在VC中还定义了一些它特有的宏,如: __FUNCTION__:返回当前代…