返回

初始c语言的常见错误和盲区

发布时间:2022-09-14 14:49:55 394

@​​TOC​​

一、前置++与后置++

我们先看两个例题来感受下

初始c语言的常见错误和盲区_链接属性

第一个先来后置++,大体使用上我认为后置++的频率比前置要高

后置++ 先执行表达式 等表达式执行完后 再++

也就是先使用 后++

这里面b=a++ 可以拆分成 b=a a=a+1

而来到c的时候 a的值已经加1了 即c=11

初始c语言的常见错误和盲区_源文件_02

b=++a 可以拆分成 a=a+1 b=a 即b=11 这里是先加加 在使用 c=a a的值已经在上面加1了 即c=11

二、static的使用

1.修饰局部变量

初始c语言的常见错误和盲区_链接属性_03

结果不难看出是 2 2 2 2 2a属于局部变量在栈区 函数使用后就会被销毁 所以每次调用 a时a的值都会被重置成为1 a=a+1 最终每次输出都是2


初始c语言的常见错误和盲区_链接属性_04

现在函数中的a被static修饰 成为了静态区中的 所以这次调用a的值不会随着函数调用结束而销毁 第一次a的结果为 2 依次增加1 最终结果是 2 3 4 5 6


2.修饰全局变量

初始c语言的常见错误和盲区_源文件_05

初始c语言的常见错误和盲区_全局变量_06

extern 用来声明外部符号

定义两个源文件

当运行时 全局变量的值被打印出来

初始c语言的常见错误和盲区_源文件_07

初始c语言的常见错误和盲区_链接属性_08

当用static修饰全局变量时 我们发现会报错 正常情况下使用外部声明(extern)就可以使用了 全局变量具有外部链接属性 ,而当用static修饰后,外部链接属性就会变成内部链接属性 其他的源文件就无法通过链接找到 即此时全局变量只能在本身源文件内部使用

3.修饰函数

初始c语言的常见错误和盲区_全局变量_09

初始c语言的常见错误和盲区_源文件_10

这里依然定义两个源文件 找到add函数 并得出结果8


初始c语言的常见错误和盲区_全局变量_11

初始c语言的常见错误和盲区_全局变量_12

这里使用static修饰后报错

函数也是具有外部链接属性的 其他源文件使用声明就可以但是被static修饰后 就变成了内部连接属性 只能在本身的源文件中使用了


4.总结

具有外部链接属性的一个程序中的其他源文件都可以使用(没有被static修饰过的全局变量 函数 ) 而具有内部链接属性的只能在本身的源文件中使用(static修饰过的全局变量 函数)

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线