C语言的高级应用
straing
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言宏的高级应用
关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏: #define WARN_IF(EXP) do{ if (EXP) fprintf(stderr, "Warning: " #EXP "转载 2013-01-05 16:16:28 · 492 阅读 · 0 评论 -
C语言中的__attribute__机制
GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。 __attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attri转载 2013-01-10 16:35:58 · 527 阅读 · 0 评论 -
C语言中不安全的函数以及解决方案
函数 严重性 解决方案 gets 最危险 使用 fgets(buf, size, stdin)。这几乎总是一个大问题! strcpy 很危险 改为使用 strncpy。 strcat 很危险 改为使用 strncat。 sprintf 很危险 改为使用 snprintf,转载 2013-01-11 14:31:42 · 1289 阅读 · 0 评论
分享