C语言
bigboow
这个作者很懒,什么都没留下…
展开
-
函数用法:malloc、calloc、realloc、memset
摘录自《Linux C 从入门到精通》。关于动态内存的分配所使用的操作函数在这里主要介绍malloc函数、calloc函数、realloc函数和memset函数的基本用法。(1)malloc函数函数原型为:void *malloc(unsigned int size);该函数的功能是分配长度为size字节的内存块。如果分配成功则返回指向被分配内存的指针,否则返回空指针NU...转载 2019-04-14 14:37:33 · 624 阅读 · 0 评论 -
C语言 命名冲突与static修饰符
整理自《C陷阱与缺陷》。1. 链接链接器:C源文件经过编译器生成目标文件。链接器的输入:目标文件和库文件链接器输出:载入模块或可执行文件外部对象: 连接器通常把目标模块看成是由一组外部对象组成的。每个外部对象代表着机器内存中的某个部分,并通过一个外部名称来识别。因此,程序中的每个函数和每个外部变量,如果没有被声明为static,就都是一个外部对象。某些C编译器会对静态函数...原创 2019-04-12 21:13:16 · 838 阅读 · 0 评论 -
C语言 求值顺序
整理自《C陷阱与缺陷》。1. 运算顺序和求值顺序运算顺序: 根据运算符号的优先级(结合性)来进行求值的过程求值顺序: 例如 D = A + B + C, 运算顺序是 A 先加 B 再加 C, 但是c语言并没有规定是先计算A的值还是B的值还是C的值; 这就是求值顺序。2. C规定了这四个运算符的求值顺序: &&、||、?:、,短路求值:&&a...转载 2019-04-11 21:04:24 · 1813 阅读 · 0 评论 -
C语言中数组名和数组下标
整理自《C陷阱与缺陷》。数组注意点:1.C数组中只有一维数组,数组的大小必须在编译期作为常数确定。但C数组的元素可以是任何类型的对象,当然也可以是另一个数组,所以“仿真”出一个多维数组。(不太明白为什么要强调只有一维数组,难道“模拟”出来的多维数组和真正的多维数组不一样?)2.对于一个数组,我们只能够做两件事:确定该数组大小[sizeof(数组名)],以及获得指向该数组下标为0的元素的指针...原创 2019-04-11 20:55:39 · 8066 阅读 · 2 评论 -
理解函数声明 :C语言的声明、函数指针、指针函数、类型转换符、typedef函数指针
整理自《C陷阱与缺陷》。1. C语言的声明构造规则:按照使用的方式来声明;C变量的声明由两部分组成:类型+一组类似表达式的声明符(declarator)。意思是对声明符求值,返回给定类型的结果。float f,g;因为声明符和表达式的类似,我们可以在声明符中任意使用括号。如:float ((f));2. 函数指针,指针函数float *g() , (*h)();(...原创 2019-04-06 10:36:28 · 270 阅读 · 0 评论 -
GCC基础
摘录自《Linux C 从入到精通》。1. 命令选项gcc [options] [filenames]其中options就是编译器所需要的参数,filenames给出相关的文件名称。-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。-o output_filename,确定输出文件的名称为output...转载 2019-04-14 16:02:30 · 123 阅读 · 0 评论