C/C++编程
robbie1314
每天坚持学习至少一小时~~
展开
-
关于#ifdef __cplusplus extern
时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入extern "C"{和}处理其中的代码。 要明白为何使用extern "C",还得从cpp中对函数的重载处理开始说起。在c转载 2010-06-06 17:30:00 · 397 阅读 · 0 评论 -
C语言18个经典问题答录(转)
<br />1.这样的初始化有什么问题?char *p = malloc(10); 编译器提示“非法初始式” 云云。<br /><br />答:这个声明是静态或非局部变量吗?函数调用只能出现在自动变量(即局部非静态变量) 的初始式中。<br />因为静态变量的地址必须在编译的过程中就确定下来而malloc()申请的内存地址是在运行时确定的。<br /><br />2. *p++ 自增p 还是p 所指向的变量?<br /><br />答:后缀++ 和-- 操作符本质上比前缀一目操作的优先级高, 因此*p++原创 2010-06-06 01:49:00 · 513 阅读 · 0 评论 -
pc-lint
<br />今天准备搭个pclint环境,不然写的代码好多隐藏问题检查不出来,还没弄好,明天继续,下面在网上找了一些pclint安装资料,贴上来吧。。,这个工具非常好,值得推荐,能检查很多问题,还能自己配置“检查约束”<br /> <br /> PC-Lint是C/C++软件代码静态分析工具,你可以把它看作是一种更加严格的编译器。它不仅可以检查出一般的语法错误,还可以检查出那些虽然符合语法要求但不易发现的潜在错误。<br /> C语言的灵活性带来了代码效率的提升,但相应带来了代码原创 2010-06-17 00:13:00 · 909 阅读 · 0 评论 -
typeof关键字简介
<br />今天用到typeof,看一下它的用法<br /><br />typeof关键字是C语言中的一个新扩展。只要可以接受typedef名称,Sun Studio C 编译器就可以接受带有typeof的结构,包括以下语法类别:声明 函数声明符中的参数类型链表和返回类型 类型定义 类型操作符s sizeof操作符 复合文字 typeof实参 <br />编译器接受带双下划线的关键字:__typeof和__typeof__。本文中的例子并没有遵循使用双下划线的惯例。从语句构成上看,typeof关键字后带圆括转载 2010-06-15 10:30:00 · 914 阅读 · 0 评论 -
C中的预编译宏定义
<br />今天看到linux内核对swap宏的定义成下面那样,很纳闷,为什么要do while,复习下预编译宏,转了个帖子,里面有介绍!!<br /><br />#define swap(x,y) /<br /> do { unsigned long _temp=x; x=y; y=_tmp} while (0)<br /> <br /> <br />在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处转载 2010-06-15 11:48:00 · 649 阅读 · 2 评论 -
linux pc-lint
1. PC-Lint 是什么?如果你真的不知道它是什么? 那么请私下询问 Google, 但千万不要声张:-).简单而言, PC-Lint 是 Gimpel Software 公司出品的一个很牛的软件, 你可以叫它吹毛求疵器, 因为它能够做比编译器严格得多的(包括但不限于)语法检查.事实上这个工具有两个版本: 一个叫 PC-Lint, 是针对 PC 机的 (主要是对付 Windows, MS-DOS, OS/2 等系统), 以可执行文件形式发布; 另一个叫 FlexeLint, 是针对其它系统的 (比如 L转载 2010-06-21 22:30:00 · 14499 阅读 · 2 评论 -
C语言中auto register static const volatile
1)auto 这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。 (2)register 这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。 (3)static 常见的两种用途: 1>统计函数被调用的次数; 2>减少局部数组建立和赋值的开销.变量的建立和赋值是需要一定的处理器开销的,特别是数组等含有较多元素的存原创 2011-04-25 23:43:00 · 698 阅读 · 0 评论