c语言链接与储存类型 两种类型限定 以及代码常见报错类型

1.链接与储存类型

链接是c语言程序编译的一个步骤,就是对程序引用的外部变量或者函数进行解析,将它们的定义包含到c语言中去,形成一个完整可执行的程序。

例如:c语言中程序声明了 a,b,c三个变量和func函数,其中a,b变量定义均在当前文件中,链接会将c变量定义和func函数定义信息合并到当前程序,形成完整的程序。

c语言链接分为三类:

外部链接(不同源文件引用相同的对象或函数,使用extern修饰的变量或函数)。

内部链接:在同一个源文件中引用相同的对象或者函数,使用static修饰的具有文件作用域的变量或者函数。

无链接:非对象(变量)或函数的标识符;函数形参的标识符;具有块作用域的且五extern修饰的标识符。

2.存储类型分类

c语言规定了auto,register,extern,static四种,用于在变量前面修饰。

(1)auto

块作用域的局部变量,默认是auto自动类型,且auto类型只能修饰局部变量

例如:int a = 100;

auto int a = 100;\\这两者等价

(2)register

不能修饰函数,不能声明全局变量

只能声明块作用域的局部变量函数参数

编译器不能保证一定将变量分配到寄存器,也可以使用auto分配

(3)extern

外部类型,可以修饰变量或函数,作用域与具有文件作用域的普通变量一样,函数没有指明存储类型时 默认是extern类型

(4)static

静态函数,可以修饰变量或函数。

3.两种类型限定词

const :限定声明的变量是不可以修改的常量,该变量在初始化后,始终保持值不变;它修饰的变量也称为只读变量,只要一经定义 就不可以再被赋值修改

volatile :限定声明的变量值可能经常发生改变

注:volatile 修饰的变量特点是 该变量是共享的,也就是可以由多个程序共同访问;

4.常见代码报错类型

error 1: Out of memory 内存溢出

error 2: Identifier expected缺标识符
error 3:Unknown identifier未定义的标识符
error 4: Duplicate identifier 重复定义的标识符

error 5: Syntax error语法错误
error 6: Error in real constant 实型常量错误

error 7: Error in integer constant 整型常量错误
error 8: String constantexceeds line字符串常量超过一行

error 10:Unexpected end of file文件非正常结束

error 11: Line too long 行太长
error 12: Type identifier expected未定义的类型标识符

error 13: Too many open files 打开文件太多

error 14: Invalid file name 无效的文件名

error 15: File not found 文件未找到

error 16: Disk full 磁盘满
error 17: Invalid compiler directive 无效的编译命令

error 18: Too many files 文件太多
error 19:Undefined type in pointer def指针定义中未定义类型

error 20: Variable identifier expected 缺变量标识符

error 21: Error in type 类型错误
error 22: Structure too large 结构类型太长
error 23: Set base type out of range集合基类型越界
error 24: File components may not be files or objectsfile分量不能是文件或对象

error 25:Invalid string length 无效的字符串长度

error 26: Type mismatch 类型不匹配

 error 27: Invalid subrange base type 无效的子界基类型

error 28:Lower bound greater than upper bound 下界超过上界

error 29:Ordinal type expected 缺有序类型

error 30: Integer constant expected 缺整型常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值