随笔分类 -  C/C++

摘要:c++中如果函数的参数列表包含多个实参,那么对参数的求值顺序是不确定的。 在谭浩强的《C++程序设计》(第二版)P94中提到,GCC对参数求值是按从右到左的顺序求值的。 但我实测并非如此。 这段程序的输出为: 由此可见,哪怕是对于同一编译器,参数的求值顺序也是不确定的。 在实际使用中,要尽量避免一个 阅读全文
posted @ 2017-09-21 11:43 Leon_Yan 阅读(574) 评论(1) 推荐(1)
摘要:宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。 如定义好#define STRING(x) #x之后,下面二条语句就等价。 char *pChar = "hello"; char *pChar = ST 阅读全文
posted @ 2016-09-24 17:34 Leon_Yan 阅读(1370) 评论(0) 推荐(0)
摘要:问题:当运行时错误产生时,我怎样才能得到包含C++文件名和行号的字符串信息?回答:在C++中的__FILE__预编译指示器包含了被编译的文件名,而__LINE__则包含了源代码的行号。 其中__FILE__是一个字符串 char *,__LINE__是一个整形的数字。 实例如下: #include 阅读全文
posted @ 2016-09-23 21:41 Leon_Yan 阅读(268) 评论(0) 推荐(0)
摘要:1 基本解释 extern可以置于变量或者函数 前,以标示变量或者函数 的定义在别的文件中,提示编译器遇到此变量和函数 时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。 2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进 阅读全文
posted @ 2016-09-23 21:40 Leon_Yan 阅读(635) 评论(0) 推荐(0)