当前位置: 代码网 > it编程>编程语言>C/C++ > C语言函数的声明、定义、调用方式

C语言函数的声明、定义、调用方式

2026年02月12日 C/C++ 我要评论
一、定义 无返回值 无参 函数1、方法一#include<stdio.h>void main(){// 1、声明函数void noreturnnoparameter();// 3、调用函数

一、定义 无返回值 无参 函数

1、方法一

#include<stdio.h>

void main()
{
	// 1、声明函数
	void noreturnnoparameter();
	// 3、调用函数
	noreturnnoparameter();
}

// 2、定义函数
void noreturnnoparameter()
{
	printf("定义无返回值无参函数\n");
}

2、方法二

#include<stdio.h>

// 1、声明函数
void noreturnnoparameter();

void main()
{
	// 3、调用函数
	noreturnnoparameter();
}

// 2、定义函数
void noreturnnoparameter()
{
	printf("定义无返回值无参函数\n");
}

3、方法三

#include<stdio.h>

// 1、定义函数
void noreturnnoparameter()
{
	printf("定义无返回值无参函数\n");
}

void main()
{
	// 2、调用函数
	noreturnnoparameter();
}

二、定义 无返回值 有参 函数

1、方法一

#include<stdio.h>

void main()
{
	// 1、声明函数
	void noreturnyesparameter(int x, int y);
	int x = 3, y = 9;
	// 3、调用函数
	noreturnyesparameter(x,y);
}

// 2、定义函数
void noreturnyesparameter(int x, int y)
{
	printf("定义无返回值有参:%d,%d\n",x, y);
}

2、方法二

#include<stdio.h>

// 1、声明函数
void noreturnyesparameter(int x, int y);

void main()
{
	int a = 3, b = 9;
	// 3、调用函数
	noreturnyesparameter(a,b);
}

// 2、定义函数
void noreturnyesparameter(int x, int y)
{
	printf("定义无返回值有参:%d,%d\n",x, y);
}

3、方法三

#include<stdio.h>

// 2、定义函数
void noreturnyesparameter(int x, int y)
{
	printf("定义无返回值有参:%d,%d\n",x, y);
}

void main()
{
	
	int x = 3, y = 9;
	// 3、调用函数
	noreturnyesparameter(x,y);
}

三、定义 有返回值 无参 函数

1、方法一

#include<stdio.h>

void main()
{
	// 1、声明函数
	int yesreturnnoparameter();
	int	a = yesreturnnoparameter();
	// 3、调用函数
	printf("%d\n", a);
}

// 2、定义函数
int yesreturnnoparameter()
{
	int a = 123;
	return a;
}

2、方法二

#include<stdio.h>

// 1、声明函数
int yesreturnnoparameter();

void main()
{
	// 3、调用函数
	printf("%d\n", yesreturnnoparameter());
}

// 2、定义函数
int yesreturnnoparameter()
{
	int a = 123;
	return a;
}

3、方法三

#include<stdio.h>

// 1、定义函数
int yesreturnnoparameter()
{
	int a = 123;
	return a;
}

void main()
{
	// 2、调用函数
	printf("%d\n", yesreturnnoparameter());
}

四、定义 有返回值 有参 函数

1、方法一

#include<stdio.h>

void main()
{
	// 1、声明函数
	int yesreturnyesparameter(int a, int b);
	int a = 1, b = 3, c;
	// 3、调用函数
	c = yesreturnyesparameter(a, b);
	printf("%d\n", c);
}

// 2、定义函数
int yesreturnyesparameter(int a, int b)
{
	int c;
	c = a + b;
	return c;
}

2、方法二

#include<stdio.h>

// 1、声明函数
int yesreturnyesparameter(int a, int b);

void main()
{

	int a = 1, b = 3, c;
	// 3、调用函数
	c = yesreturnyesparameter(a, b);
	printf("%d\n", c);
}

// 2、定义函数
int yesreturnyesparameter(int a, int b)
{
	int c;
	c = a + b;
	return c;
}

3、方法三

#include<stdio.h>

// 1、定义函数
int yesreturnyesparameter(int a, int b)
{
	int c;
	c = a + b;
	return c;
}

void main()
{

	int a = 1, b = 3, c;
	// 2、调用函数
	c = yesreturnyesparameter(a, b);
	printf("%d\n", c);
}

五、数组为函数的参数

1、数组元素参数

  • 数组元素:数组类型和函数的形参变量类型一致即可
#include<stdio.h>

void main()
{
	// 形参类型与数组类型一致
	void test(int v);

	int a[10] = {1, 2, 3, 4, -1, -2, -3, -4, 2, 3};
	int i;

	for(i = 0; i < 10; i++)
	{
		// 数组元素下标
		test(a[1]);	// 2 2 2 2 2 2 2 2 2 2
	}
	printf("\n");
}

// 形参类型与数组类型一致
void test(int v)
{
	printf("%d ", v);
}

2、数组名参数

  • 数组名:数组名与函数形参类型都为同类型数组即可
#include<stdio.h>

void main()
{
	// 形参与数组名为同类型数组即可
	void test(int b[]);
	
	// 整形的数组
	int a[10] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
	test(a);	// 2 4 6 8 10
	putchar('\n');

}

// 形参与数组名为同类型数组即可
void test(int b[])
{
	int i = 0;
	for(; i < 5; i++)
	{
		printf("%d ", b[i]);	
	}
}

六、总结

方式一:在mian方法里或mian方法前声明函数(推荐)

  • 声明函数
  • 定义函数
  • 调用函数

方式二:在main方法前定义函数,可以不声明函数。

  • 定义函数
  • 调用函数

推荐写法:

void main()
{
	// 1、声明函数
	类型标识符 函数名(形参列表);
	// 3、调用函数
	函数名(形参列表);
}
// 2、定义函数
类型标识符  函数名(形参列表)
{
	函数体;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

  • C++的虚继承实现示例

    C++的虚继承实现示例

    一、虚继承的核心定位:解决菱形继承的痛点在讲解虚继承前,先明确其诞生的背景——菱形继承(钻石继承) 是多重继承的典型问题,而虚继承是c+... [阅读全文]
  • C++线程锁的使用

    C++线程锁的使用

    一、基础概念:锁的核心分类在讲解具体工具前,先明确c++锁的两个核心维度:基础锁类型(提供原始的加锁/解锁能力):std::mutex、std::recursi... [阅读全文]
  • C++类成员指针的实现示例

    C++类成员指针的实现示例

    一、类成员指针的核心定位类成员指针是c++中专门指向“类的成员”(而非具体对象的成员)的特殊指针,和普通指针的核心区别:普通指针:直接指... [阅读全文]
  • C++ CPU的局部性原理两种类型解析

    C++ CPU的局部性原理两种类型解析

    cpu的局部性原理github地址有梦想的电信狗前言在实际编程中,我们常会发现:逻辑相同的代码,仅仅改变数据访问顺序,性能却可能相差数倍。造成这种差异的根本原因... [阅读全文]
  • 深入理解 Qt 中的事件循环

    深入理解 Qt 中的事件循环

    在 qt 框架中,事件循环(event loop)是支撑图形界面(gui)响应性、异步操作处理的核心机制。无论是按钮点击、窗口拖动,还是网络请求、定时器触发,最... [阅读全文]
  • C++ explicit显式关键字的实现

    C++ explicit显式关键字的实现

    一、explicit 关键字的核心定义explicit 是c++中的修饰符关键字,唯一的作用场景是修饰类的构造函数,它的核心功能是:禁止编译器对被修饰的构造函数... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com