学习笔记:1.Hello,World代码分析,函数

本文详细解析了C语言中Hello, World代码的组成要素,包括`#include`预处理指令、`main`函数的作用及用法、函数声明与定义的规则,以及开发和运行C程序的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1.Hello,World代码分析

#include解释

#include <stdio.h>//#include预处理指令,编译器根据后面给出的文件名,来查找并把这个文件包含到当前文件中
//被包含的文件为xxx.h则是头文件,包含需要使用的函数的声明
//#include 可以包含任何编译器能识别的c/c++代码文件,
//如:c,hpp,cpp等,甚至,txt,abc等都可以

//<>包含的是系统自带的文件,“”是开发人员自己创建的文件(与编译器对文件的搜索顺序有关)



//C语言是面向过程的语言,一个C程序中一定且只能有一个main函数,是程序的入口
int main(int argc, const char * argv[])
{

   // insert code here...
    printf("Hello, World!\n");
    return 0;
}

main函数解释

//C语言是面向过程的语言,一个C程序中一定且只能有一个main函数,是程序的入口
int main(int argc, const char * argv[])
{
   // insert code here...
    printf("Hello, World!\n");
    return 0;
}

main()
{//可以不写参数和返回类型。如: main() 此时main默认范围值为int

   // insert code here...
    printf("Hello, World!\n");
    return 0;
}
函数没有写返回值类型,并不代表函数没有返回值,而是表示返回值类型为int类型,void才代表函数没有返回值

不过,把main设置成void也可以运行,#C语言语法不是很严谨啊。

void main()
{//无返回值,照样可以运行

   // insert code here...
    printf("Hello, World!\n");
}


并且定义返回为int也可不写返回语句。

 int main()
{//可以不写返回类型,即使定义了返回类型为int。

   // insert code here...
    printf("Hello, World!\n");
}


开发和运行C程序的步骤为

1.编写程序

2.编译 (检查语法是否有错误,编译成功时根据每个愿原程序文件名,生成目标文件.obj。有几个目标文件生成几个.obj)

3.链接 (将有关联的obj目标文件,以及系统提供的C函数组合在一起,生成可执行文件的过程)

4.运行

函数:

1.主函数 main()每个程序有且只有一个,C语言的入口,C程序总是从主函数开始执行。

2.开发人员自己定义的函数

3.C语言提供的库函数。


函数的声明和定义

标准c语言中,函数的定义顺序是必须要注意的,只有后面定义的函数能调用前面的函数,(xcode是包装过的,不会编译不通过。不过写的是偶会有警告)

#include <stdio.h>
int sum(int a,int b){
    int c=a+b;
    return c;
}
int main(int argc, const char * argv[])
{    // insert code here...
    printf("c:%d\n",sum(3,4));
    return 0;
}

以上没有问题

#include <stdio.h>

int main(int argc, const char * argv[])
{    // insert code here...
    printf("c:%d\n",sum(3,4));//这句会被警告
    return 0;
}
int sum(int a,int b){
    int c=a+b;
    return c;
}

以上会有警告



不想被顺序反省,可以在main函数前做一下函数声明

#include <stdio.h>
//以下2句为函数声
int sum(int,int);//简写
//int sum(int a,int b) //写全也可以
//声明函数只是让main知道有这个函数存在,至于函数有没有定义,会在函数链接时出错。

int main(int argc, const char * argv[])
{    // insert code here...
    printf("c:%d\n",sum(3,4));//这句会被警告
    return 0;
}
int sum(int a,int b){
    int c=a+b;
    return c;
}



在大型C程序中,为了分块惊醒开发,一般会将函数的声明和定义分别放在2个文件中。

函数声明放在.h的头文件中。函数定义放在.c源文件中。

sum.h

int sum(int,int);//简写
//int sum(int a,int b) //写全也可以

sum.c

int sum(int a,int b){
    int c=a+b;
    return c;
}


main.c

#include <stdio.h>
#include "sum.h"

int main(int argc, const char * argv[])
{    // insert code here...
    printf("c:%d\n",sum(3,4));//这句会被警告
    return 0;
}

不能直接在main.c中导入sum.c文件,会在链接时产生“标识符重复



3.函数的型参和实际参数

定义函数时,函数名,后面,需要传入的变量时,型参,调用函数时,传入的变量时实参。

#include <stdio.h>

//定义函数时,设置的,a,b是型参
void sum(int a,int b){
    b=5;
    printf("b=%d:sum内部\n",b);
}
int main(int argc, const char * argv[])
{    // insert code here...
    //调用函数时,传入的,2,3时实参
    int a=5;
    int b=6;
    sum(a,b);
    printf("b=%d:main中调用sum\n",b);
    return 0;
}

b=5:sum内部

b=6:main中调用sum

基本数据类型传递给函数的时候是值传递。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dwt1220

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值