- 博客(5)
- 收藏
- 关注
原创 《C和指针》整理一
1.C语言的注释 在C语言中,如果需要注释掉一段代码,且代码中可能会已经存在/**/注释形式,那么可以使用:#if 0 statements#endif 这种形式来注释掉这段代码(statements代表这段代码)。这样做的原因是C语言不允许嵌套注释,也就是说第一个/*和第一个*/符号之间的内容都被看作注释,不管里面还有多少个/*符号。2.换行符的处理
2014-10-28 10:45:23 1022
原创 《C陷阱和缺陷》整理四
1.assert宏的定义#define assert(e) \ ((void)((e) || _assert_error(__FILE__, __LINE__))) 库里面对这个宏做了这样的定义,当宏参数(或表达式)e为真的时候由||运算符的运算规则会执行_assert_error(__FILE__, __LINE__)从而打印一条报警信息。所以整个表达
2014-10-16 00:26:00 1298
原创 《C陷阱与缺陷》整理三
1.大多数C语言的实现都通过函数main的返回值来告诉操作系统该函数的执行是成功还是失败。典型的处理方案是,返回值为0代表程序执行成功,返回值非0则表示程序执行失败。如果一个程序的main函数并不返回任何值,那么有可能看上去执行失败。所以建议我们的C程序的main函数应该如下编写:int main(){ return 0;}当然如果main函数需要接受参数的话将参数声明加
2014-10-13 14:59:59 1071
原创 《C陷阱与缺陷》整理二
1.在C语言中,我们没有办法将一个数组作为函数参数传递,如果我们使用数组名作为参数,这个时候数组名立刻会被转换为指向该数组的第一个元素的指针。 关于这一点的理解可以向前深入一步,比如定义的数组为int a[3],那么a作为参数传递之后会变为int *类型;如果定义的数组为int a[3][4],那么a作为参数传递之后被变为int (*)[4];如果定义的数组为int a[3][4][5]
2014-10-11 16:24:05 981
原创 《C陷阱与缺陷》整理一
1.词法分析中的“贪心法” C语言的某些符号,例如/、*和=,只有一个字符长,称为单字符符号。而C语言中的其他符号,例如/*和==,以及标识符等都包含了多个字符,称为多字符符号。当C编译器读入一个字符'/'后又跟了一个字符'*',那么编译器就必须做出判断:是将其作为两个分别的符号对待,还是合起来作为一个符号来对待。C语言对这个问题的解决方案可以归纳为一个很简单的规则:每一个符号应该包含尽
2014-10-11 08:17:01 1210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人