位运算符、函数、全局变量与工程管理

一、位运算符号

(1)<< : 按位左移,相当于乘2

(2)>> :   按位右移,相当于除2

注:在使用右移符号时,尽量使用unsigned类型的变量

有符号变量当在最高位是1的时候(也就是当它是负数的时候),做右移运算,移动后的高位填充的是1。如果使用无符号变量做右移,移动后高位填充的是0。

 

(3)&   按位与:相同位的两个数字都为1,则为1;若有一个不为1,则为0。

(两个数字按位与运算,当没有重叠位时结果是0 )

(4)|   按位或:相同位的两个数字都为0,则为0;若有一个不为0,则为1。 (两个数字按位或运算,当没有重叠时就是加法)

(5)~   按位取反:单目运算,将一个数字所有二进制位0变1,1变0。

(无符号时相当于最大值减自己,有符号相当于乘-1再减)

(6)^   按位异或:双目运算,当相同位的两个数字相同时为0,不同时为1。

(两次次跟同一个数字^运算结果,恢复原来之前数值)

 

二、函数声明:

一般情况下,当被调函数在主调函数代码的上方才能够被调用,否则编译时就不能通过,这叫做“代码的可见性”。

(1)使用函数声明,就可以让不可见的函数被主调函数调用。

(2)函数声明,就是将被调函数的函数头放在被主调函数的上方,加个分号即可。

(3)在一个代码量很大的C语言源文件中,通常在这个源文件的头部把所有函数都声明一遍。

 

三、返回值的本质:

(1)形式参数的本质是,主调函数向被调函数传递数据。

(2)返回值的本质是,被调函数向主调函数传递数据。

(3)主调函数向被调函数传递数据,是直接将数据复制给被调函数的形式参数。

(4)被调函数向主调函数传递数据,是先把要返回的数据存入到寄存器EAX中。等被调函数结束后主调函数再从寄存器EAX中,取出该数据再利用。

 

四、全局变量和静态变量:

(1)全局变量是所有函数的公用变量,整个程序中任何一个函数都可以任意地调用它。

(2)静态变量和全局变量被分配到同一块内存中,静态局部变量只限于在定义处的函数使用。但是离开函数后数值一直保留,直到程序退出后才会被清除。

(3)全局变量在main函数被调用之前就已经被初始化,而静态局部变量只有当函数第一次被调用时才被初始化。之后每次再调用该函数静态局部变量就不会再被初始化了,因为它要长期保存最后一次进入函数时的赋值,直到程序退出后才会被清除。

五、全局变量的声明和调用:

(1)全局变量定义尽量在一个源代码文件的最上方,与函数一样有可见性的问题。

(2)如果全局变量在主调函数的下方,不能被主调函数可见,则可以使用全局变量的声明。

(3)全局变量的声明类似于函数声明,声明的格式是变量定义的前面加extern关键字。例如:extern int g_nTest;

(4)全局变量声明时不可以初始化赋值

六、函数和全局变量都可以跨文件访问:

(1)一个编写好的函数(也就是函数的定义),不但可以在当前源代码文件中任意地被调用,而且在其他源代码文件中也可以被调用。

(2)只要在主调函数上方加入一行被调函数的声明,则无论被调函数是否在当前源代码文件中都可以自由地被调用了。

(3)在同一软件工程中,一个函数的定义(函数体)只能有一份,而函数的声明可以有任意多个。哪里需要调用被调函数就把函数的声明放上去就可以了,一般一个源代码文件中所有函数声明全部都放在最上方,这样该源文件中所有函数就都可见了。

(4)以上3个特点,对于全局变量也完全适用,只是全局变量的声明格式上比函数声明要多一个extern关键字。

(5)还有一个关键字可以阻断其他文件对全局变量的声明和调用,就是在定义全局变量时前面加static关键字。这种全局变量的定义也有一个好处就是,如果跨文件有同名的全局变量不会起冲突。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了python应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值