当前位置: 首页 > wzjs >正文

长沙做网站要微联讯点很好企业网络推广服务

长沙做网站要微联讯点很好,企业网络推广服务,定制网站建设公司排行,ubuntu wordpress运行1 main 主函数 1.1 主函数的作用 在 C 语言中,main 主函数是程序的入口函数,所有 C 程序必须包含一个名为 main 的函数。程序总是从该函数开始执行,没有它程序就无法启动。 主函数可以调用其他函数。其他函数不能调用主函数。主函数不能调用…

1 main 主函数

1.1 主函数的作用

        在 C 语言中,main 主函数是程序的入口函数,所有 C 程序必须包含一个名为 main 的函数。程序总是从该函数开始执行,没有它程序就无法启动

  • 主函数可以调用其他函数。
  • 其他函数不能调用主函数。
  • 主函数不能调用自己(会导致无限递归)。

1.2 主函数的基本形式

        C 语言标准规定主函数有两种合法形式:

int main(void) { /* 函数体 */ }  // 显式声明无参数int main(int argc, char *argv[]) { /* 函数体 */ }  // 带参数形式

关于 void 的详细说明:

        在 C 语言中,void 在 main 函数的参数列表中可以省略,但它的含义会有所不同:

  1. int main(void)
    • 显式声明函数不接受任何参数
    • 这是现代 C 标准(如 C99/C11)推荐的方式。
    • 明确表示 main 函数无参数,更清晰、更符合现代标准,避免歧义。
  2. int main()
    • 传统 C 风格,表示函数参数未指定(即可能接受任意参数,具体由编译器实现定义),语法上是合法的,在旧代码中常见
    • 在历史上下文中,这种写法可能允许通过命令行参数传递(尽管标准方式是通过 argc 和 argv)。
  3. 建议:现代代码中建议使用 void 以明确意图。

1.3 主函数的返回值

返回值的意义

        main 函数返回一个整数值给操作系统(或调用环境)

  • 返回 0 表示程序成功执行结束
  • 返回非零值表示程序遇到错误或异常情况
  • 这个返回值可被操作系统或父进程用来判断程序执行状态。

默认返回值

  • 如果 main 函数没有显式返回,编译器会隐式添加 return 0;
  • 出于代码清晰性和可维护性考虑,建议显式包含 return 0; 或适当的错误码。

返回值类型

  • main 函数的返回类型必须是 int
  • 这是 C 标准(C99、C11、C17 等)的明确规定。

1.4 主函数的参数

参数形式

        主函数可以声明为接收两个参数:

int main(int argc, char *argv[])
  • argc(argument count):命令行参数的数量,至少为 1(程序本身的名称)
  • char *argv[]:可以看作是一个字符串数组,其中每个元素都是一个指向字符串的指针
  • argv(argument value):指向字符串数组的指针,存储所有参数
    • argv[0]:程序名称。
    • argv[1] 到 argv[argc-1]:用户输入的参数。
    • argv[argc]:固定为 NULL 指针。

参数处理示例

#include <stdio.h>int main(int argc, char *argv[]) // 参数个数,参数列表
{printf("Parameter count argc = %d\n", argc); // 如果没有参数,将会输出:1,即程序名本身// 遍历参数列表for (int i = 0; i < argc; i++){printf("Parameter %d: %s\n", i + 1, argv[i]);}return 0;
}

无参数时:

        当程序启动时,如果没有通过命令行传递额外参数,argc 的值将为 1,表示只有一个参数,即程序自身的名称 argv[0]

        程序在 VS Code 中的运行结果如下所示:

在 PowerShell 传递参数:

  1. 基本参数传递:

    • 参数默认通过空格分隔
    • 示例:./program.exe arg1 arg2 arg3
  2. 包含空格的参数:

    • 如果参数包含空格,需要用引号括起来
    • 示例:./program.exe "first argument" "second argument"

        下面我们用 VS Code 内嵌的 PowerShell 终端来做个演示。先使用编译指令把代码编译成可执行文件,接着在 PowerShell 环境里运行这个可执行文件,运行的时候在后面跟上对应的参数就行。

在 CMD 中传递参数:

        在 CMD 中处理主函数参数的方法与在 PowerShell 中一致。接下来,我们使用 VS Code 内嵌的 CMD 终端进行演示。同样,先使用编译指令将代码编译为可执行文件;然后,在 CMD 环境中运行该可执行文件,并在运行命令后添加相应的参数。

提示:

        在 Windows 系统中,argv[0] 通常会显示程序的完整绝对路径。这是因为 Windows 的命令行环境默认会传递完整的可执行文件路径作为第一个参数。  

传参的意义

        主函数设计 argc(参数计数)和 argv(参数值数组)参数的意义在于:

  1. 接收外部输入:让程序在运行时能够接收来自命令行的参数,从而实现动态的输入处理,而不是在编译时就固定输入。
  2. 增强程序灵活性:通过命令行参数,程序可以根据不同的输入执行不同的操作,而无需修改代码或重新编译,提高了程序的适应性和可扩展性。
  3. 便于集成与自动化:命令行参数使得程序可以轻松地集成到脚本和自动化流程中,方便进行批量处理或自动化任务。
  4. 提供用户交互:用户可以通过命令行参数直接与程序交互,指定所需的选项、输入文件或配置,提升了用户体验。

        假设你开发了一个简单的文件搜索工具,用户可以通过命令行参数指定要搜索的目录和文件名模式:

./search_tool /home/user/documents "*.txt"

        在这个例子中,argv[1] 是 /home/user/documents,argv[2] 是 *.txt。程序根据这些参数在指定目录中搜索所有 .txt 文件。通过这种方式,程序可以根据用户的需求灵活地执行任务,而不需要在代码中硬编码这些参数。


2 多文件编程

        多文件编程可以将不同功能的代码分散到不同的源文件中,使项目结构更清晰,便于维护和扩展

2.1 搭建项目结构

        首先创建一个名为 Multi-file_Program 的文件夹,然后在该文件夹中创建以下五个源文件:

  1. main.c:包含 main 函数和所有函数的原型声明
  2. add.c:只包含加法函数的实现
  3. sub.c:只包含减法函数的实现
  4. mul.c:只包含乘法函数的实现
  5. div.c:只包含除法函数的实现(注意处理除数为 0 的情况)

2.2 编写源代码

main.c:

#include <stdio.h>// 函数原型声明
int add(int a, int b);
int sub(int a, int b);
int mul(int a, int b);
int div(int a, int b);int main()
{// 调用函数printf("5 + 3 = %d\n", add(5, 3));printf("5 - 3 = %d\n", sub(5, 3));printf("5 * 3 = %d\n", mul(5, 3));printf("5 / 3 = %d\n", div(5, 3));return 0;
}

add.c:

// add.c
// 只包含加法函数的实现/*** @brief 加法函数** @param a 第一个整型参数* @param b 第二个整型参数* @return 返回 int 类型*/
int add(int a, int b)
{return a + b;
}

sub.c:

// sub.c
// 只包含减法函数的实现/*** @brief 减法函数** @param a 第一个整型参数* @param b 第二个整型参数* @return 返回 int 类型*/
int sub(int a, int b)
{return a - b;
}

mul.c:

// mul.c
// 只包含乘法函数的实现/*** @brief 乘法函数** @param a 第一个整型参数* @param b 第二个整型参数* @return 返回 int 类型*/
int mul(int a, int b)
{return a * b;
}

div.c:

// div.c
// 只包含除法函数的实现,注意处理除数为 0 的情况/*** @brief 除法函数** @param a 第一个整型参数* @param b 第二个整型参数* @return 返回 int 类型*/
int div(int a, int b)
{if (b == 0){// 这里只是简单地返回 0,实际中可能需要更复杂的错误处理// 这通常不是一个好的做法,因为它隐藏了错误return 0; // 退出函数,返回 0}return a / b;
}

2.3 同时编译多个源文件

        在多文件编程中,将多个源文件同时编译成一个可执行程序是一个常见的需求。这可以通过修改 VS Code 的 tasks.json 配置文件或直接在终端中使用 gcc 命令来实现。

修改配置文件的方式

        在 VS Code 中,tasks.json 文件用于配置任务(如编译、运行等)。如果项目工作区中没有 tasks.json 文件,可以通过运行一个 C 源程序(如 main.c)让 VS Code 自动生成该文件

        打开生成的 tasks.json 文件,修改其内容以支持同时编译多个 C 源文件,如下所示:

        通过上述配置,无论你选择运行五个源文件(如 main.c、add.c、sub.c、mul.c、div.c)中的哪一个,VS Code 都会自动调用预定义的构建任务,使用 gcc 编译所有指定的源文件,并生成统一的 math_program.exe 可执行文件。

        程序在 VS Code 中的运行结果如下所示:

使用 gcc 命令的方式

        与通过 VS Code 的 tasks.json 配置文件编译多文件 C 项目不同,你可以直接在终端中使用 gcc 命令手动编译所有源文件。这种方式更加灵活,适合熟悉命令行操作的用户。

http://www.dtcms.com/wzjs/323488.html

相关文章:

  • 广州市网站建设分站价格佛山seo联系方式
  • 整站seoseo优化官网seo关键词排名系统
  • 装修公司网站建设厦门seo网站推广优化
  • 个人或主题网站建设 实验体会百度地图推广电话
  • 做电子商务系统网站建设东莞企业网站模板建站
  • 在凡科做网站卫星电视安装视频
  • 电子方案网站建设方案优化服务公司
  • 网站内链分析产品营销方案
  • 东昌网站建设黄石市seo关键词优化怎么做
  • 做网站没有学历的人会吗国家卫生健康委
  • ASP做购物网站视频媒体公关是做什么的
  • 营销型网站怎么做营销型网站策划方案
  • 网页开发和游戏开发seo发展前景怎么样啊
  • 徐州手机网站制作公司哪家好h5网站制作平台
  • 网站建设项目需求书百度首页排名优化价格
  • 阿里云网站建设 部署与发布营销型网站建设的主要流程包括
  • 打开ecshop网站提示内容溢出爱站网seo查询
  • 2015帝国cms网站昆明seo网站管理
  • 北京模板建站软件seo的中文含义
  • 国外b2b网站毛片抓取关键词的软件
  • 网站推广到海外怎么做电商线上推广
  • 西藏网站建设全包怎样在百度上宣传自己的产品
  • 专做正品 网站短视频营销方式有哪些
  • 视频网站程序搜索风云榜入口
  • 网站开发公司的log整合营销公司排名
  • 在哪个网站去租地方做收废站网络推广怎么做好
  • 知名设计网站公司微信管理助手
  • 黑牛网站建设公司培训
  • 自己做网站写文章seo网络推广技术员招聘
  • 网站备案 哪个省地推团队接单平台