C语言摘要 -- K&R笔记(2)

本文总结了《K&R》第4章关于C语言函数的要点,包括函数定义、声明与调用的规则,以及外部/全局变量和内部/局部变量的区别。讨论了变量作用域、extern关键字、变量名冲突解决以及头文件的使用。还简述了预处理阶段的宏定义和条件包含等概念。
摘要由CSDN通过智能技术生成

最新文章请访问:SHIZHZ's Blogsicon-default.png?t=LBL2https://shizhz.me/

本文是对《K&R》第4章《Functions and Program Structure》的一个摘要。

1. 函数定义范式为:

return-type fun-name(arguments declarations)

{

    declarations and statements

}

在函数定义中如果没有指定返回值,则默认为int型,通过-Wall编译器会显示相应的警告信息:

fun() {}

单独编译时:

$ gcc -c fun.c -Wall
fun.c:1:1: 警告:返回类型默认为‘int’ [-Wreturn-type]
fun.c: 在函数‘fun’中:
fun.c:1:1: 警告:在有返回值的函数中,控制流程到达函数尾 [-Wreturn-type]

-c选项告诉gcc不调用连接器(linker),只生成可重定位的目标文件,该文件格式为ELF,内容可通过readelf或objdump等二进制工具读取,更多二进制工具可参考GNU提供的binutils;-Wall选项告诉gcc显示所有警告信息。

2. 函数的声明、定义及调用:

函数的声明与定义需要一致,编译器通过检查函数名、返回值、参数列表来检查函数声明与定义的一致性,对于隐式声明的函数则不检查参数列表。函数调用前进行显示声明是好的编程习惯。

如果没有显示声明,则调用处包含了对函数的一个隐式声明,隐式声明的返回值为int,参数任意。如果该函数定义在同一个源文件中,则编译器会对返回值进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值