
C/C++
Coding_Peasant
这个作者很懒,什么都没留下…
展开
-
C语言头文件怎么写
c语言头文件怎么写? <div class="article_manage clearfix"> <div class="article_r"> <span class="link_postdate">2015-03-24 23:20</span> <span class="link_view" ti转载 2017-06-10 14:04:36 · 924 阅读 · 0 评论 -
标准C/C+头文件
标准C语言头文件ISO C标准定义的头文件(24项)<assert.h> 验证程序断言 <complex.h> 支持复数算术运算 <ctype.h> 字符类型<errno.h> 出错码 <fenv.h> 浮点环境 <float.h> 浮点常量<inttypes.h> 整型格式转换 <iso646.h> 替代关系操作转载 2017-06-10 14:27:28 · 569 阅读 · 0 评论 -
C语言中的隐式函数声明
1 什么是C语言的隐式函数声明在C语言中,函数在调用前不一定非要声明。如果没有声明,那么编译器会自动按照一种隐式声明的规则,为调用函数的C代码产生汇编代码。下面是一个例子:int main(int argc, char** argv){ double x = any_name_function(); return 0;}123456123456单纯的编译上述源代码,并没有任何报转载 2017-06-10 15:10:09 · 1296 阅读 · 0 评论 -
内存四区
stack(栈区):存放局部变量、函数参数、返回数据和返回地址,系统自动分配释放。栈顶从高地址向低地址的方向生长,操作方式类似于数据结构中的栈。 heap(堆区):由程序员通过malloc()等函数分配释放,若程序员不释放,程序结束时可能由OS回收。它与数据结构中的堆是两回事,分配方式倒是类似于链表。堆的生长方向从低地址向高地址的方向生长。 static area(静态区):存放全局变量和静态变原创 2017-06-12 14:07:33 · 297 阅读 · 0 评论 -
一个C语言运算符优先级导致的问题
检测某个数的某个二进制位是否为0,是常见的控制逻辑,如下代码所示:if (x & (1<<2) == 0) { printf("x的第2个二进制位为0\n");}123123然而实际上,上述代码永远不会执行printf,也就是说 x & (1<<2) == 0这个表达式始终为0。原因在于在C语言里,==运算符的优先级高于&,导致上面的表达式相当于:if ( x & ((1<<2) == 0转载 2017-06-12 14:45:38 · 394 阅读 · 0 评论 -
C/C++头文件
C/C++头文件:C/C+程序通常由头文件(header files)和定义文件(definition files)组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保证程序的声明(declaration);而定义文件用于保存程序的实现(implementation)。头文件一般由四部分内容组成:(1)头文件开头处的版权和版本声明;(2)预处理块;(3)inline函数的定义;(4)原创 2017-03-23 17:35:33 · 541 阅读 · 0 评论 -
可变参函数
例如可变参函数printf的函数原型/函数声明为:int printf(char *fmt, ...);其中参数表必须至少包括一个有名参数(如fmt);省略号表示参数表中参数的数量和类型是可变的,且省略号只能出现在参数表的尾部。 在标准头文件<stdarg.h>中包含一组宏定义,它们对如何遍历未知数目和类型的函数参数表进行了定义;该头文件的实现因不同的机器而不同,但提供的接口是一致的。主要的宏如下原创 2017-08-30 16:44:41 · 406 阅读 · 0 评论 -
C语言的不完整类型和前置声明
声明与定义(Declaration and Definition)开始这篇文章之前,我们先弄懂变量的declaration和definition的区别,即变量的声明和定义的区别。一般情况下,我们这样简单的分辨声明与定义的区别:建立存储空间的声明称之为“定义”,而把不需要建立存储空间的称之为“声明”。其实更为准确地描述的话,变量的声明可以分为两种情况:(1)一种是需要建立存储空间的。例如:in转载 2017-12-01 18:07:35 · 637 阅读 · 0 评论