首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【C语言笔记】C语言编译的过程

下面以windows环境下的test.c为例,test.c里的代码为: #include int main(void) { printf("This is a test program...如图,编译生成可执行文件的过程实际包含四个过程:(1)预处理;(2)编译;(3)汇编;(4)链接。...2、预处理(Preprpcessing) 使用预处理器把源文件test.c经过预处理生成test.i文件,预处理用于将所有的#include头文件以及宏定义替换成其真正的内容。...预处理的命令为: gcc -E test.c -o test.i 上述命令中-E是让编译器在预处理之后就退出,不进行后续编译过程;-o是指定输出文件名。 预处理之后得到的仍然是文本文件。...汇编过程的命令为: gcc -c test.s -o test.o 上述命令中-c、-o让汇编器把汇编文件test.s转换成目标文件test.o。

12.2K31

C语言笔记---(1)初识C语言

C语言简介 C语言的历史 1972年,贝尔实验室,1972年,丹尼斯·里奇和布莱恩·柯林汉(Brian Kernighan)在B语言的基础上重新设计了一种新语言,这种新语言取代了B语言,所以称为C语言...C语言的源代码可以在任意架构的处理器上使用。 C语言的特点 1.语言简洁灵活 C语言是现有程序设计语言中规模最小的语言之一,C语言的关键字仅仅只有32个,控制语句也只有9个。...C语言是完全模块化和结构化的语言。C语言对于输入和输出的处理也是通过函数调用来实现的。...C语言的版本 在C语言的发展史上,有过许多不同的版本。...这本书被C语言开发者们称为“K&R”,很多年来被当作C语言的非正式的标准说明。人们称这个版本的C语言为“K&R C”。

23.7K12
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C语言笔记】内存笔记

    C语言程序需要载入内存才可以运行,其不同的数据保存在不同的区域。所使用的内存可以分成两类:一类是静态存储区,另一类是动态存储区。 C语言程序的存储区如下图所示: ?...x \n", b, (unsigned int)&b); printf("c = %d, &c = %#x \n", c, (unsigned int)&c); } 程序运行结果: ?...= %d, &c = %#x \n", c, (unsigned int)&c); } void stack_test2(int a, int b, int c) { stack_test1(a,...按照C语言内存分配规则,如果内存分配成功,返回的是内存的地址;如果内存分配不成功,将返回NULL(0x0),表示一个无效的地址。 (3)malloc在分配内存的时候,是从低地址至高地址方向。...以上是对于C语言内存的一些笔记。如有错误,欢迎指出!

    1.6K31

    【C语言笔记】枚举

    其可以与typedef来进行类比进行理解(可查看【C语言笔记】define与typedef的区别?)。除此之外,其还可以与枚举enum进行类比。 二、什么是枚举 从字面理解,就是一一列举的意思。...很多时候,有一些数据的取值有限的,这时候可以把这些可能的结果列出来,并赋予新的名字,这样有助于提高代码的可读性。...若其他成员赋了初值,也是遵循“枚举成员的值是根据前一个成员的值递增1”这一规则,如: enum DAY { A,B,C=100,D,F=200,G }; 此处 A=0 B=1 C=100 D=101...从该程序运行结果也可看出,枚举类型变量需要存放的是一个整数,它的长度和int的长度相同。 以上就是关于枚举类型enum的一些笔记,如有错误欢迎指出。 最后,分享两篇关于枚举的文章,都讲得很详细。...https://www.cnblogs.com/JCSU/articles/1299051.html http://c.biancheng.net/cpp/html/99.html

    93951

    我的C语言入门笔记~!

    C语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。...C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。...必不可少之主函数 一个C程序有且只有一个主函数,即main函数。 C程序就是执行主函数里的代码,也可以说这个主函数就是C语言中的唯一入口。...例如Imooc和imooc 是两个不同的标识符。 标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。 标识符不能是C语言的关键字。想了解更多C语言关键字的知识。...C语言的数组长度一经声明,长度就是固定,无法改变,并且C语言并不提供计算数组长度的方法。

    4.9K2319

    C语言入门笔记

    C语言编译系统在对C程序进行正式编译之前需做一些预处理工作。...函数就是实现代码逻辑的一个小的单元。 注:在最新的C标准中,main函数前的类型为int而不是void。 2、主函数 一个C程序有且只有一个主函数,即main函数。主函数就是C语言中的唯一入口。...C 语言规定,标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须是字母或下划线。...例如Imooc和imooc 是两个不同的标识符。 3.标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。 4.标识符不能是C语言的关键字。...同样C语言中的数据也是有类型的,C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。如图所示: ?

    1.5K30

    我的C语言入门笔记~!

    C语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。...C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。...例如Imooc和imooc 是两个不同的标识符。 标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。 标识符不能是C语言的关键字。想了解更多C语言关键字的知识。...关系运算符 C语言中的关系运算符: ? 关系表达式的值是真和假,在C程序用整数1和0表示。 注意:>=, <=, ==, !=这种符号之间不能存在空格。 逻辑运算符 C语言中的逻辑运算符: ?...注意以下几点: 最好避免出现数组越界访问,循环变量最好不要超出数组的长度. C语言的数组长度一经声明,长度就是固定,无法改变,并且C语言并不提供计算数组长度的方法。

    1.2K3429

    【C语言笔记】操作位的技巧

    一、操作位的方法 操作位有两种方法,一种是位字段,另一种是使用按位运算符。位字段的方法可查看往期笔记:【C语言笔记】位域。本文介绍使用按位运算符操作位的方法。下表为几种位操作符及其含义: ?...二、不改变其他位的值的状况下,对某几个位进行设值。...对于二进制位操作来说,不管该位原来的值是0还是1,它跟0进行&运算,得到的结果都是0,而跟1进行&运算,将保持原来的值不变;不管该位原来的值是0还是1,它跟1进行|运算,得到的结果都是1,而跟0进行|运算...在实际编程中,常改写为: TEST |= 0x01; 这种写法可以一定程度上简化代码,是 C 语言常用的一种编程风格。...0X00000040; //设置相应位的值,不改变其他位的值 移位操作提高代码的可读性。

    1.9K20

    【C语言笔记】指针变量的运算

    前言 指针变量也是可以进行运算的,如指针变量对其自身加上某个整数或减去某个整数,这在内存上体现为:相对这个指针向后偏移多少个单位或向前偏移了多少个单位,这里的单位与指针变量的类型有关。...include int main(void) { int a = 10, *pa = &a; float b = 6.6, *pb = &b; char c...= 'a', *pc = &c; double d = 2.14e9, *pd = &d; //最初的值 printf("pa0=%d, pb0=%d, pc0=%d, pd0...如图:pa1所指向的地址在pa0所指向地址往后8字节处,pa2指向地址在pa1指向地址往前4字节处。 从本示例程序中,还可以看出:连续定义的变量在内存的存储有可能是紧挨着的,有可能是分散着的。...以上就是关于C语言指针变量运算的一些总结:指针变量与整数相加相减是相对该指针指向的地址向后向前偏移多少个单位。这里的单位不能认为总是1。

    1.4K20

    这是我的C语言入门笔记

    c语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。...C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。...必不可少之主函数 一个C程序有且只有一个主函数,即main函数。 C程序就是执行主函数里的代码,也可以说这个主函数就是C语言中的唯一入口。...例如Imooc和imooc 是两个不同的标识符。 标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。 标识符不能是C语言的关键字。想了解更多C语言关键字的知识。...C语言的数组长度一经声明,长度就是固定,无法改变,并且C语言并不提供计算数组长度的方法。

    61220

    C语言入门笔记2

    C语言的运算 1、运算符 我们上小学的时候都学过各种运算,如:加法运算、乘法运算、混合运算等,而运算就要用到运算符,如:+、-、×、÷等等。 在C语言中同样有运算符,只是写法可能有所不同。...先说一下C语言中的运算是什么?C语言中的运算就是对数据进行操作、处理的过程。那么运算符又干什么的呢?运算符就是指定该运算的处理方式。 那么C语言中又有哪些运算符呢?...在C语言中程序中也存在这样的比较,这个时候就需要用到关系运算符了。 下面是C语言中的关系运算符: ? 关系表达式的值是“真”和“假”,在C程序用整数1和0表示。如: ? 其结果为: ?...下面我们看一下C语言中的逻辑运算符: ? 那么前面的那个算式写成计算机可以看的懂的算式就是:x>7 && x<100; 逻辑运算的值也是有两种分别为“真”和“假”,C语言中用整型的1和0来表示。...当然是可以了,不过C语言中,需要用到一个符号,这个符号就是三目运算符。 C语言中的三目运算符:“?:”,其格式为: 表达式1 ?

    1.1K10

    【C语言】自学终极笔记

    第一章 程序设计和C语言 1.1 基本知识 程序:一组计算机能识别和执行的指令。 计算机语言:计算机和人都能识别的语言。 C语言是在B语言的基础上发展而来。...计算机语言发展阶段: 机器语言:计算机能直接识别和接受的二进制代码的集合(即机器指令的集合)。 符号语言(或汇编语言):使用英语字母和数字表示指令,再通过汇编语言将其转换为机器语言。...C语言特点: 语言简洁,使用方便灵活 运算符丰富 数据类型丰富 程序可移植性好 允许直接访问物理地址,进行位操作 生成的目标代码质量高,程序执行效率高 函数包括:函数首部(第一行)+函数体(‘{’+内容...注意易错: 每个C程序有且仅有一个main函数,程序从main函数开始执行且结束 C语言注释方式://单行注释和/* 多行注释 */ 一个程序由一个或多个源程序文件组成 C程序编译运行步骤:源程序...C语言无string和bool类型 注意: 1.

    15910

    C语言最全入门笔记

    来源:公众号(c语言与cpp编程) c语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。...C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。...例如Imooc和imooc 是两个不同的标识符。 标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。 标识符不能是C语言的关键字。想了解更多C语言关键字的知识。...关系运算符 C语言中的关系运算符: ? 关系表达式的值是真和假,在C程序用整数1和0表示。 注意:>=, <=, ==, !=这种符号之间不能存在空格。 逻辑运算符 C语言中的逻辑运算符: ?...注意以下几点: 最好避免出现数组越界访问,循环变量最好不要超出数组的长度. C语言的数组长度一经声明,长度就是固定,无法改变,并且C语言并不提供计算数组长度的方法。

    1.9K20

    【C语言笔记】位域

    正是基于这种考虑,C语言又提供了一种数据结构,叫做位域或位段。 位域是操控位的一种方法(操控位的另一种方法是使用按位运算符,按位运算符将在之后的笔记中做介绍)。...而结构体变量pk2的各成员超出了限定的位数,并发生了上溢(溢出中的一种),关于溢出的概念可查看往期笔记:【C语言笔记】整数溢出 C语言标准规定,只有有限的几种数据类型可以用于位域。...关于C语言的几套标准可查看往期笔记:【C语言笔记】什么是ANSI C标准?...位域的存储 位域的存储同样遵循结构体内存对齐的规则,关于结构体内存对齐的问题可查看往期笔记:【C语言笔记】C语言结构体内存对齐问题 看一个例子: #include struct pack...位域也是个很重要的知识点,如在DSP2803X的固件库的一些结构封装中普遍用到这样的写法: ? 以上就是关于位域的一些笔记,如有错误,欢迎指出!

    1.9K30

    C语言最全入门笔记

    c语言入门 C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。...C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。...例如Imooc和imooc 是两个不同的标识符。 标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。 标识符不能是C语言的关键字。想了解更多C语言关键字的知识。...关系运算符 C语言中的关系运算符: ? 关系表达式的值是真和假,在C程序用整数1和0表示。 注意:>=, <=, ==, !=这种符号之间不能存在空格。 逻辑运算符 C语言中的逻辑运算符: ?...注意以下几点: 最好避免出现数组越界访问,循环变量最好不要超出数组的长度. C语言的数组长度一经声明,长度就是固定,无法改变,并且C语言并不提供计算数组长度的方法。

    1.3K20
    领券