主函数
c
#include <stdio.h>
// 这个就是主函数, 程序的入口
int main() {
// 这个 printf 也是一个函数
// 功能就是将字符串输出到控制台
// 只不过这个函数是 stdio.h 这个
// 头文件中提供的, 是预先定义好的
// 所以可以直接使用
printf("Hello clang");
}
自定义函数
c
#include <stdio.h>
// 定义函数格式: 返回值 函数名(参数类型 参数名) { 函数体 }
// 1.直接定义并且实现
int add(int a, int b) {
return a + b;
}
// 定义,但是不实现
// 因为 c 语言是从上倒下执行的, 如果不先定义
// 那么 c 语言是无法找到在主函数后面的函数的
int mul(int a, int b);
int main() {
// 调用自定义函数: 函数名(参数)
int sum = add(3, 5);
int res = mul(3, 5);
printf("sum is %d \n", sum); // output: sum is 8
printf("res is %d \n", res); // output: res is 15
}
// 实现 mul 函数
int mul(int a, int b) {
return a * b;
}
void 关键字
void
关键字用于给那些没有返回值的函数设置返回值类型
c
void println() {
printf("\n");
}
int main() {
printf("Hello, World!");
println();
printf("This is a C program.");
return 0;
}
作用域
c
#include <stdio.h>
// 全局变量: 3个函数都可用
char str[32] = "hello world";
void fn() {
// 可以访问全局变量
printf("fn: %s \n", str);
// 局部变量1: 只有在 fn 函数中可以访问
int local_var = 1;
printf("fn: %d \n", local_var);
}
int main() {
fn();
// 可以反问全局变量
printf("main: %s \n", str);
// 但是无法访问 fn 的局部变量 local_var
// printf("main: %d \n", local_var);
{
// {} 创建一个单独的作用域
int scope_var = 1;
printf("scope:%d \n", scope_var);
}
// scope_var 一个局部变量,在这个 {} 外部无法访问
// printf("scope_var %d\n", scope_var);
}