今天下了个cjson库(下载链接:https://sourceforge.net/projects/cjson/),用于验证其浮点数的处理。在print_number()中,发现有使用DBL_EPSILON、INT_MAX、INT_MIN等宏的使用。因初次见面,所以特别研究了下。

其中,宏DBL_EPSILON的头文件为:<float.h>,宏INT_MAX、INT_MIN的头文件为:<limits.h>

阅读全文 »

 


前几天,有一位网友编译eCos时,出现了BSS段错误,提示的错误信息大概是:ld: address 0x2000f028 of stress_threads section .bss is not within region sram。

为什么会出现这个编译链接错误呢?首先,我们要搞清楚BSS段是干什么用的,然后才能针对问题进行具体分析。所以,本文主要谈谈BSS段问题,以及关于它的大小问题。让我们对BSS段有一个全面深刻的认识。

阅读全文 »

 


C/C++可变参数,“## __VA_ARGS__”宏的介绍和使用文章中,大致了解了在宏定义中如何实现可变的宏参数及其应用。这在自定义信息输出宏中特别有用。但不管如何,最终还是要由具体函数来实现可变参数,如printf函数,其原型大家都熟悉,如下:

int printf( const char *format, ... )

但是它是怎么实现可变参数的呢?又是如何获取这些可变参数的值呢?“…”省略号的应用规则又是什么?带着上述疑问,我们来解开这层面纱。 阅读全文 »

 


今天阅读代码的时候,在一个宏定义语句中,发现了个之前未曾见过的编译器预定义宏:“__VA_ARGS__”。当时,从代码语句中推测它代表宏参数:“…”(本文称之为省略号),依稀记得printf函数声明中有使用这个省略号,大概的意思是表示可变化的参数,但未深入了解。

在网上看了相关文章的介绍,主要涉及了C/C++函数中可变化参数的基础知识,并延伸到宏定义中的可变参数。借这一次的学习,算是对可变化参数有了比较详细的了解,尤其是解开了一直萦绕在头脑中printf函数声明中这个省略号的疑惑。

为更好了解C/C++中可变参数的知识,我从网上摘录了两篇文章,算是自己的一个总结。本篇主要是关于“## __VA_ARGS__”宏的介绍和使用。

阅读全文 »

 


善于总结得以提高水平、积累知识。

本文是对CSDN论坛话题——指针的危害的一篇总结。在这个话题中,众多网友对C/C++指针的使用进行了讨论。这是一个老话题,老调重谈,但却非常有意义,因为指针跟程序员是如此的亲密无间。

关于指针的使用,众多的C/C++程序员对它是即爱又恨,它带给我们灵活,也带给我们伤害。在每个C/C++程序员的成长过程中,相信都有受到过指针伤害的经历。曾经,我也对它产生过抗拒……

那么,我们该如何正确看待指针呢?下面是一些网友关于这个话题的回答: 阅读全文 »

© 2012 velep.com | reille blog | 管理| 粤ICP备15065318号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha

无觅相关文章插件,快速提升流量