C语言基础

一、C/C++的编译链接过程:
.c文件经过预编译形成.i文件,.i文件经过汇编形成.s文件,.s文件通过编译生成.o/.obj二进制目标文件,最后再通过链接形成.exe可执行文件。

二、C源程序的结构特点
1.一个C语言源程序可以由一个或多个源文件组成。2.每个源文件可由一个或多个函数组成。
3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。
5.每一个说明,每一个语句都必须以分号结尾。
6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

三、转义字符及其含义
在这里插入图片描述
四、函数
在这里插入图片描述
1.函数的可见性和生存期
作用域(可见性)指标识符能够被使用的范围;只有在作用域内标识符才可以被使用。此阶段针对编译和链接过程。
1)函数中定义的标识符,包括形参和函数体中定义的局部变量,作用域都在该函数内,也称作函数域。
2)文件作用域也称全局作用域。定义在所有函数之外的标识符,具有文件作用域,作用域为从定义处到整个源文件结束。文件中定义的全局变量和函数都具有文件作用域。
生存期也叫生命期(Life time)。此阶段针对的是程序的执行过程。
生命期指的是标识符从程序开始运行时被创建,具有存储空间,到程序运行结束时消亡,释放存储空间的时间段。
1)局部变量的生存期是:函数被调用,分配存储空间,到函数执行结束,存储空间释放。存储.stack区。
2)全局变量的生存期是:从程序行前开始,到执行后结束。存储在.data区。
3)动态生命期是:标识符由特定的函数调用或运算来创建和释放,如调用malloc()为变量分配存储空间,变量的生命期开始,而调用free()释放空间或程序结束时,变量生命期结束。具有动态生命期的变量存储在堆区.heap。

五、关键字
C语言的关键字共有32个,根据关键字的作用,可分为数据类型关键字,控制语句关键字。1.数据类型关键字
11.关键字
C语言的关键字共有32个,根据关键字的作用,可分为数据类型关键字,控制语句关键字。
1.数据类型关键字
void char short int long float double signed unsigned truct union enum typedef sizeo fauto static register extern const volatile
⒉.流程控制关键字
if else switch case default for do while return continue break goto
3.C99新增(5个)
1、inline关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义
引入原因:C语言是一个效率很高的语言,这种宏定义在形式及使用上像一个函数,但它使用预处理器实现,没有了参数压栈,代码生成等一系列的操作
2、restrict关键字只用于限定指针;该关键字用于告知编译器,所有修改该指针所指向内容的操作全部都是基于(baseon)该指针的,即不存在其它进行修改操作的途径;这样的后果是帮助编译器进行更好的代码优化,生成更有效率的汇编代码。
3、_Bool关键字是用于表示布尔值。包含标准头文件 stdbool.h 后,我们可以用bool 代替_Bool,true 代替1 , false代替0。
4、_Complex and _lmaginary关键字
4.sizeof
计算类型的大小或变量的大小,也就字节个数。
5.typedef 关键字
typedef是在计算机编程语言中用来为复杂的声明定义简单的别名。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。
6.extern关键字
extern 用在全局变量或函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用"。
7.static关键字
8.const关键字
const 在实际编程中用得比较多,const是constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说const是定义常变量的关键字。(可读,不可写)
const 可以修饰变量,数组,指针等;说const定义的是变量,但又相当于常量;说它定义的是常量,但又有变量的属性,所以叫常变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值