Skip to content

主函数

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);
}

Released under the MIT License.