欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 【C#学习笔记01】从程序框架到函数调用

【C#学习笔记01】从程序框架到函数调用

2025/3/13 6:25:06 来源:https://blog.csdn.net/LEECOO666/article/details/146150192  浏览:    关键词:【C#学习笔记01】从程序框架到函数调用

引言

​​C语言作为一种高效、灵活的编程语言,在嵌入式系统、操作系统开发以及高性能计算中扮演着重要角色。无论是初学者还是有经验的开发者,掌握C语言的基础知识都是理解计算机底层原理和编写高质量代码的关键。


1. 程序框架的分析

大家在学习编程语言的时候一般第一个程序都是“hello world”,下面就是利用C语言设计的程序代码:

#include  <stdio.h>  
int main(void)  
{printf(“hello world\n”);  return 0; 
}

一个C语言程序的基本框架通常包括以下几个部分:

  • 预处理指令:如​​#include​​,用于引入头文件。
  • 主函数:​​main()​​函数是程序的入口。
  • 函数定义:自定义函数,用于实现特定功能。
  • 语句与表达式:程序的具体逻辑。

  • ​#include <stdio.h>​​:引入标准输入输出库,使得我们可以使用​​printf​​函数。
  • ​int main()​​:​​main​​函数是程序的入口,程序从这里开始执行。
  • ​printf("Hello World!\n");​​:调用​​printf​​函数,在控制台输出一行文字。
  • ​return 0;​​:表示程序正常结束,返回值0通常表示成功。

注意大家在学习编程语言的时候,要记得一句话:程序是写给人看的!

作为一段有意义的程序来说,一定要在程序中对关键的位置进行注释,这样可以方便大家理解程序,尤其是在实际的项目开发过程中是团队开发同一个项目,由于每个人的编程习惯以及逻辑思维都不同,所以就会导致程序没有办法进行整合。


2. 代码风格

良好的代码风格是编写高质量程序的基础。以下是一些常见的代码风格规范:

  • 缩进:使用4个空格或1个Tab进行缩进,保持代码层次清晰。
  • 命名规范:变量名、函数名使用小写字母,单词之间用下划线分隔(如​​calculate_sum​​)。
  • 括号对齐:​​{​​和​​}​​单独成行,并与上一行代码对齐。
  • 空格使用:在运算符和逗号后添加空格,提高代码可读性。
#include <stdio.h>// 计算两个数的和
int calculate_sum(int a, int b) {int result = a + b;  // 使用有意义的变量名return result;
}int main() {int num1 = 10;int num2 = 20;int sum = calculate_sum(num1, num2);  // 调用函数printf("Sum: %d\n", sum);             // 输出结果return 0;
}

3. 代码注释

程序中可以包含一些必要的注释,注释是代码的重要组成部分,它可以帮助他人(以及未来的自己)理解代码的逻辑。但是不要过度注释,一般在程序中进行注释时有两种情况:针对某一行代码进行注释  and  针对某一段代码进行注释 具体操作如下所示:

(1) 针对某一行代码进行注释

当程序中需要对某一行代码进行注释时,可以采用 // 或者 /* */ 这两种方案进行注释,如:  

#include  <stdio.h>  
int main(void)  
{printf(“hello world\n”);  //return 0; 
}#include  <stdio.h>  
int main(void)  
{/**/ printf(“hello world\n”); return 0; 
}

(2) 针对某一段代码进行注释

当程序需要对某一段代码进行注释时,可以采用 /*  */ 这种方案,一般针对函数或者程序:

/***************************************************
*
*
*
***************************************************/
#include  <stdio.h>  
int main(void)  
{printf(“hello world\n”);  		
return 0; 
}
/*
*
*
*/
#include  <stdio.h>  
int main(void)  
{printf(“hello world\n”);  return 0; 
}

注意程序中的注释只是对于工程师阅读源码起到辅助性作用,对程序进行编译时,编译器会自动忽略注释,只编译有效代码,就是说编译器并不会把注释翻译成二进制指令。


4. 程序入口

C语言是一门采用面向过程范式的编程语言。所谓"面向过程",其核心思想在于将复杂问题分解为若干按顺序执行的步骤。具体而言,当开发者需要解决某个问题时,会先通过逻辑分析将其拆解为多个独立的小问题,然后按照特定顺序逐个攻克这些子问题,最终实现整体问题的解决,这正体现了"分而治之、逐步击破"的工程化思维。

基于这种自顶向下的设计理念,程序的执行流程控制显得尤为关键。根据C语言标准规范,程序的执行严格遵循线性顺序,且必须以main函数作为唯一入口点。

#include <stdio.h>int main() {printf("Program starts here!\n");return 0;
}

C语言采用函数式编程范式,其程序结构以函数为基本构建单元。一个完整的C程序由主函数(main function)和若干子函数(sub-functions)构成。其中,主函数具有特殊的命名规范——必须使用"main"作为函数标识符,该命名源自英文"main"(意为主要的、核心的)的语义内涵,体现了其在程序架构中的核心地位。作为程序的唯一入口点,系统将严格依照main函数内部的语句顺序执行指令。

特别说明程序的执行顺序与main函数在源代码文件中的物理位置无关。即便将main函数定义置于文件末尾,程序仍会从main函数开始执行,这种设计确保了程序入口的确定性和一致性。


5. 程序结束

程序的结束通常通过​​return​​语句实现。在​​main()​​函数中,​​return 0;​​​表示程序正常退出,而非零值通常表示程序异常退出。返回值指的是函数执行完成后的结果,当然,并不是所有的函数都具有返回值,这个要根据实际情况而定。

​main()​​函数中的​​return​​语句

​main()​​函数是C语言程序的入口,也是程序结束的地方。​​main()​​函数的返回值通常是一个整数,用于表示程序的退出状态:

  • return 0;​:表示程序正常结束。在大多数操作系统中,返回值为0表示程序成功执行。
  • 非零返回值:通常表示程序异常结束。不同的非零值可以用来表示不同的错误类型。
#include <stdio.h>int main() {int value = -1;if (value < 0) {printf("Error: Negative value!\n");return 1;  // 异常退出,返回值为1}printf("Program ends normally.\n");return 0;  // 正常退出,返回值为0
}
  • 如果​​value​​为负数,程序会输出错误信息并通过​​return 1;​​结束,表示程序因错误而退出。
  • 如果​​value​​为非负数,程序会输出正常结束信息并通过​​return 0;​​​结束,表示程序成功执行。

​exit()​​函数

除了​​return​​语句,C语言还提供了​​exit()​​函数来立即终止程序。​​exit()​​函数位于​​stdlib.h​​头文件中,它接受一个整数参数,类似于​​main()​​函数的返回值:

  • exit(0);​:表示程序正常结束。
  • exit(非零值);​:表示程序异常结束。
#include <stdio.h>
#include <stdlib.h>  // 引入exit()函数int main() {int value = -1;if (value < 0) {printf("Error: Negative value!\n");exit(1);  // 异常退出}printf("Program ends normally.\n");exit(0);  // 正常退出
}
  • ​exit()​​函数会立即终止程序,不会继续执行后续代码。
  • 与​​return​​语句不同,​​exit()​​可以在程序的任何地方调用,而不仅限于​​main()​​函数。

6. 函数调用

在C语言程序架构中,函数作为基本组成单元,其体系由主函数(main function)和若干子函数(sub-functions)构成。主函数具有固定命名规范(必须为main)和特定功能定位(程序入口),而子函数则具有更高的灵活性和多样性。

子函数作为主函数的补充,主要分为两大类别:

库函数(Library Functions):由官方或权威机构(如ISO、ANSI、GNU等)提供的标准化函数集合,统称为标准库(Standard Library)

用户自定义函数(User-defined Functions):开发者根据特定需求自主实现的函数

值得注意的是,函数库的来源具有多样性:除了官方标准库外,还包括由各类组织、企业或个人开发的第三方库(Third-party Libraries)。这些库根据授权模式可分为:开源免费库(体现技术共享精神)和商业授权库(体现知识价值)

一般官方提供的函数库都已经在系统路径中能够是存在的,所以用户需要使用<>包含头文件,就可以让编译器找到对应的函数接口。

注意头文件不是必须包含,只有调用了函数库中的函数接口,才需要包含头文件!


写在后面:

本系列博客文章只是简单介绍知识点、C语言的基础知识,意在使读者(还有自己)大概了解C语言,起到辅助学习作用,若需进一步系统学习还需借助另外的文献及课程。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词