【学习打卡】第1天 C语言函数结构
2022/8/4 3:22:46
本文主要是介绍【学习打卡】第1天 C语言函数结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:C语言系统化精讲 重塑编程思想 打造坚实的开发基础
课程章节:第四章 函数与程序结构
授课老师:bennyhuo
课程内容
函数形式
其实程序语言很多特点都与数学一致,函数也不例外。
C语言中的函数输入一般为形式参数,而书写形式则为
<return type> <name> (<parameter>){ ...statement return <return value>; }
命名法
而值得注意的是,Clion 为编写函数名称或变量名称提供了一系列命名法规范可供选择。
于 Editor > C/C++ > Naming Convention 中:
如其中的函数命名即为 Pascal Case
如果想获取不一致的提示,可以点击右上角的小绿勾,在General
中将 Inconsitent
勾选上,可能是太耗性能,所以默认是关的。打开后 如 f(int a)
这种便会用波浪线提示。之后使用 alt + enter
便可以校正回来。
最后就是变量命名应该明确意义,除非你参加国际 C 语言混乱大赛。
函数原型
C 语言中函数定义如果什么参数都不要,那么记得写void
,
而不写是另一重含义,即什么参数都无所谓。
而C++ 不写则默认为void,这是C 和 C++的重要区别。
那么是函数原型呢,就是给函数的输出输出一个定义,也就是是声明,于定义函数输入输出的类型,只关心参数和返回值的类型,函数的实现在哪都无所谓,声明主要表明:
- 函数名
- 函数返回值类型,如果没有,默认为
- 函数的参数列表,参数顺序,参数类型
变量类型和作用域(Compiler Explorer 查看汇编)
- block scope : 大括号括起来的作用域
- function scope: : 函数内的作用域
- function prototype scope: 函数声明内形参的定义域,如
double Sort(int size, int array[size])
- file scope :写在整个文件里,在整个文件都是全局的定义域,而经典
static
的变量也是具有文件作用域的。
而 static
和 auto
是对立的:
其中non-static 在未初始值的情况下是一个乱码,在msvc下不初始化会报错。
而static 未初始化,也会有个初值,即 0。
而gcc 不初始化则会出非常多叉子,可能会赋上一个上次的栈里的值。
总之 auto – 块作用域 、statci – 文件作用域 、register – 加速操作
函数的变长参数
使用argc (argument count), 指示数量,使用… 指代变长参数。
void HandleVarargs(int arg_count , ...){ // 1. 定义 va_list va_list args; int i; // 2. 开始遍历 va_start(args, argc); // 3.取出对应参数 for (int i = 0; i <argc; ++i){ int arg = va_arg(args, int); printf(" %d : %d \n" ,i, arg); } //4. 结束遍历 va_end(args); }
课程收获
- 对之前不理解的函数定义,如auto、register、static 属于变量类型,了解的更清楚,如什么是文件定义域。
- 对ide 中自动检查的功能,再就是 compiler explorer 有了更清楚的了解。
- 知道了变长参数的写法,其实也没多好用,但是了解了部分机制。
这篇关于【学习打卡】第1天 C语言函数结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享
- 2024-06-06基于 casdoor 的 ELK 开源登录认证解决方案: elk-auth-casdoor-icode9专业技术文章分享
- 2024-05-29Elasticsearch慢查询日志配置
- 2024-05-29揭秘华为如此多成功项目的产品关键——Charter模板
- 2024-05-29海外IDC业务拓展的7大挑战
- 2024-05-29InLine Chat功能优化对标Github Copilot,CodeGeeX带来更高效、更直观的编程体验!
- 2024-05-29CodeGeeX 智能编程助手 6 项功能升级,在Visual Studio插件市场霸榜2周!
- 2024-05-29AutoMQ 生态集成 Apache Doris
- 2024-05-292024年IDC行业的深度挖掘:机遇、挑战与未来展望
- 2024-05-29五款扩展组件齐发 —— Volcano、Keda、Crane-scheduler 等,邀你体验