![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
caipengxiang
这个作者很懒,什么都没留下…
展开
-
const sigset_t *restrict set 中restrict是什么意思?
《Unix 环境高级编程》一书中有很多,比如 int sigprocmask(int how, const sigset_t *restrict set, sigset_t *restrict oset)就是数据唯一访问方式。其实这是C99的一个更新:用于告诉编译器,哪些指针引用是可以优化的。也就是说用这个关键字修饰的指针变量引用的对象,在该函数中只能通过该指针进行访问。转载 2015-01-07 17:41:47 · 928 阅读 · 0 评论 -
c语言中用括号将花括号括起来给变量赋值
#define max(x,y) ({ \ typeof(x) _x = (x); \ typeof(y) _y = (y); \ (void) (&_x == &_y); \ _x > _y ? _x : _y; })在这个宏中,花括号里表达式的值为最后一条语句的值,然后用小括号将大括号括起来就可以给其他变量赋值了。当红语句中的最外层小括号原创 2015-06-06 14:38:23 · 7762 阅读 · 1 评论 -
C 语言中 typeof 关键字简介
C 语言中 typeof 关键字简介原文:http://hi.baidu.com/leowang715/blog/item/b0b96d6f972e7dd080cb4a06.htmltypeof关键字是C语言中的一个新扩展。只要可以接受typedef名称,Sun Studio C 编译器就可以接受带有typeof的结构,包括以下语法类转载 2015-06-06 13:40:14 · 382 阅读 · 0 评论 -
你精通C吗?test!
你精通C吗?test!分类: C 系列2012-10-18 18:15 1515人阅读 评论(5) 收藏 举报c语言存储struct汇编以下这些题目是我曾遇到过的,觉得有深度的问题,对题目的解析绝大部分是本人的思考(引用的已注明出处),可能有不对的地方,希望大家不吝指正。(PS:如果您对以下题目表示无压力,只能说您对C有一定的理解,至于是否精通C,不能由此文转载 2015-05-19 10:40:40 · 562 阅读 · 0 评论 -
C++/C链接过程详解
C++/C链接过程详解有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后, 或许会有一些答案。 首先看看我们是如何写一个程序的。转载 2015-06-04 14:35:56 · 918 阅读 · 0 评论 -
C语言精华记录——壹(变量的作用域及存储方式)
C语言精华记录——壹(变量的作用域及存储方式)分类: C 系列2012-10-13 20:20 1199人阅读 评论(0) 收藏 举报存储c语言编程汇编悟道系列之——C语言这是我的第一篇博文。对我来说CSDN并不陌生,但一直以来我都是一个默默的潜水者,可是今天我要冒泡了。特意选了十月一日来重新注册账号,我想赋予这个日子以新的意义。在进入正题之前,我想有必转载 2015-05-19 10:42:36 · 725 阅读 · 0 评论 -
字符串指针与字符数组的区别
字符串指针与字符数组的区别数组和指针都可以在它们的定义中用字符串常量进行初始化,尽管看上去一样,底层的实现机制却不相同。定义指针时,编译器并不为指针所指向的对象分配空间,它只是分配指针本身的空间。例如:下面的定义创建了一个字符串常量(为其分配了内存): char *p=”abcdefg”; //”abcdefg”存储在静态常量区,p指向该”abcdefg”转载 2015-04-16 16:26:28 · 392 阅读 · 0 评论 -
第八章 柔性数组成员
在讲述柔性数组成员之前,首先要介绍一下不完整类型(incomplete type)。不完整类型是这样一种类型,它缺乏足够的信息例如长度去描述一个完整的对象。 6.2.5 Types incomplete types (types that describe objects but lack information needed to determine their sizes).转载 2015-01-07 17:29:11 · 263 阅读 · 0 评论 -
第七章 右左法则----复杂指针解析
首先看看如下一个声明: int* ( *( *fun )( int* ) )[10]; 这是一个会让初学者感到头晕目眩、感到恐惧的函数指针声明。在熟练掌握C/C++的声明语法之前,不学习一定的规则,想理解好这类复杂声明是比较困难的。 C/C++所有复杂的声明结构,都是由各种声明嵌套构成的。如何解读复杂指针声明?右左法则是一个很著名、很有效的方法。不过,右左法则其实并不是C/转载 2015-01-07 17:23:22 · 257 阅读 · 0 评论 -
什么是可重入函数和不可重入函数
可重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会 出错。不可重入函数在实时系统设计中被视为不安全函数。转载 2015-01-07 17:38:30 · 389 阅读 · 0 评论 -
offsetof(s,m)解析
offsetof(s,m)解析offsetof 求某个结构体的特定成员在结构体里面的偏移量 (s *)0 是骗编译器说有一个指向类(或结构)s的指针,其值为0 &((s *)0)->m 是要取得类s中成员变量m的地址 由于这个类(或结构)的基址为0,这时m的地址当然就是m在s中的偏移了 (s *)0 是把0地址转换为s指针类型,然后从转载 2015-06-06 14:53:37 · 455 阅读 · 0 评论