day7 coding: 变量存储、预处理
This commit is contained in:
parent
1ad50f4df7
commit
ff10f99477
|
@ -0,0 +1,15 @@
|
|||
#include <stdio.h>
|
||||
|
||||
void show()
|
||||
{
|
||||
int x = 10; // x 只在 show() 函数中有效
|
||||
printf("show x = %d\n", x);
|
||||
}
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
int x = 100;
|
||||
show(); // show 函数内的变量则会自动释放
|
||||
printf("main x = %d\n", x); // x 是 main 局部定义的 x
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
#include "a.h"
|
||||
|
||||
int sum(int a, int b)
|
||||
{
|
||||
return a + b;
|
||||
}
|
||||
|
||||
int sub(int a, int b)
|
||||
{
|
||||
return a - b;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
#include <stdio.h>
|
||||
|
||||
extern int sum(int, int);
|
||||
extern int sub(int, int);
|
|
@ -0,0 +1,9 @@
|
|||
#include "./a.h"
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
int ret = sum(100, 200);
|
||||
printf("100 + 200 = %d\n", ret);
|
||||
printf("ret - 60 = %d\n", sub(ret, 60));
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
extern int m;
|
||||
{
|
||||
int m;
|
||||
printf("%d\n", m / 0); // 除 0 编译测试
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#define PI 3.14
|
||||
|
||||
int main()
|
||||
{
|
||||
float radiu;
|
||||
printf("半径(π=%.2f): ", PI);
|
||||
scanf("%f", &radiu);
|
||||
printf("面积: %.2f\n", PI * radiu * radiu);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#define SUM(a, b) a + b
|
||||
int main()
|
||||
{
|
||||
int x, y;
|
||||
scanf("%d,%d", &x, &y);
|
||||
printf("%d+%d=%d\n", x, y, SUM(x, y));
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
#include <stdio.h>
|
||||
#define M(a, b) (a) * (b)
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
printf("%d*%d=%d\n", 2 + 5, 6 - 3, M(2 + 5, 6 - 3));
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#define __DEBUG__
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef __DEBUG__
|
||||
printf("------debug------\n");
|
||||
#endif
|
||||
|
||||
int a = 10, b = 20;
|
||||
int ret = a + b;
|
||||
printf("%d+%d=%d\n", a, b, ret);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#define __DEBUG__
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef __DEBUG__ // 如果定义了 __DEBUG__ 宏,则执行下面代码
|
||||
printf("------debug------\n");
|
||||
#else // 如果没有定义 __DEBUG__ 宏,则执行下面的程序
|
||||
printf("------v1.0------\n");
|
||||
#endif
|
||||
|
||||
int a = 10, b = 20;
|
||||
int ret = a + b;
|
||||
printf("%d+%d=%d\n", a, b, ret);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#define __DEBUG__
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifndef __DEBUG__ // 如果没有定义了 __DEBUG__ 宏,则执行下面代码
|
||||
printf("------v1.0------\n ");
|
||||
#else // 如果定义了 __DEBUG__ 宏,则执行下面的程序
|
||||
printf(" ------debug-- ----\n ");
|
||||
|
||||
#endif
|
||||
|
||||
int a = 10, b = 20;
|
||||
int ret = a + b;
|
||||
printf("%d+%d=%d\n", a, b, ret);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
#include <stdio.h>
|
||||
#define DEBUG 0
|
||||
// #define DEBUG 1
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
int a, b;
|
||||
scanf("%d,%d", &a, &b);
|
||||
|
||||
#if DEBUG
|
||||
printf("%d*%d=%d\n", a, b, a * b);
|
||||
#else
|
||||
printf("%d+%d=%d\n", a, b, a + b);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int x; // 全局变量,未初始化,存在静态全局区中
|
||||
static int y; // 全局静态变量
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
int x = 10; // x 是 main 函数的局部变量,存在栈中
|
||||
printf("x = %d\n", x); // 局部变量
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
// 使用全局变量计算100以内累加和。
|
||||
#include <stdio.h>
|
||||
|
||||
int total = 0; // 全局变量在整个
|
||||
|
||||
void add(int n)
|
||||
{
|
||||
total += n; // 将局部变量 n 的值累加到 total 全局变量
|
||||
}
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
for (int i = 1; i <= 100; i++)
|
||||
add(i);
|
||||
|
||||
printf("100 以内的整数和: %d\n", total);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
// 使用全局变量计算100以内累加和。
|
||||
#include <stdio.h>
|
||||
|
||||
void add(int n)
|
||||
{
|
||||
static int total = 0; // 只定义一次静态变量
|
||||
total += n; // 将局部变量 n 的值累加到 total 全局变量
|
||||
|
||||
printf("total = %d\n", total);
|
||||
}
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
for (int i = 1; i <= 100; i++)
|
||||
add(i);
|
||||
|
||||
// printf("100 以内的整数和: %d\n", total);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
// 使用全局变量计算100以内累加和。
|
||||
#include <stdio.h>
|
||||
|
||||
int add(int n)
|
||||
{
|
||||
static int total = 0; // 只定义一次静态变量
|
||||
total += n; // 将局部变量 n 的值累加到 total 全局变量
|
||||
|
||||
// printf("total = %d\n", total);
|
||||
return total;
|
||||
}
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
int sum;
|
||||
for (int i = 1; i <= 100; i++)
|
||||
sum = add(i);
|
||||
|
||||
printf("100 以内的整数和: %d\n", sum);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
#include <stdio.h>
|
||||
|
||||
static int totalScore;
|
||||
int totalPersons;
|
||||
|
||||
void count(int a, int b, int c)
|
||||
{
|
||||
totalScore += a + b + c;
|
||||
totalPersons++;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("全局变量值: %d, %d\n", totalPersons, totalScore);
|
||||
count(90, 100, 89);
|
||||
count(95, 90, 79);
|
||||
printf("平均成绩: %.2f\n", totalScore * 1.0 / totalPersons);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
#include <stdio.h>
|
||||
|
||||
void sum(int a, int b)
|
||||
{
|
||||
int ret = a + b;
|
||||
printf("%d + %d = %d\n", a, b, ret);
|
||||
}
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
#include <stdio.h>
|
||||
|
||||
void watch_n(int i)
|
||||
{
|
||||
// 监听 watch_n 函数每调 10 次,打印 i 的结果
|
||||
static int cnt;
|
||||
if (++cnt % 10 == 0)
|
||||
{
|
||||
printf("%d ", i);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
watch_n(i);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
#include "help.h"
|
||||
|
||||
// 内部函数
|
||||
static void _show_sum(int a, int b, int c)
|
||||
{
|
||||
printf("%d + %d = %d\n", a, b, c);
|
||||
}
|
||||
|
||||
// 全局函数
|
||||
void twoNumAdd(int a, int b)
|
||||
{
|
||||
_show_sum(a, b, a + b);
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
#include <stdio.h>
|
||||
|
||||
// 内部函数
|
||||
static void _show_sum(int a, int b, int c);
|
||||
|
||||
// 全局函数
|
||||
void twoNumAdd(int a, int b);
|
|
@ -0,0 +1,13 @@
|
|||
#include "help.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
for (int i = 1; i < 3; i++)
|
||||
{
|
||||
for (int j = 1; j <= i; j++)
|
||||
{
|
||||
twoNumAdd(i, j); // 可以调用 help.c 的外部函数
|
||||
// _show_sum(i, j, i + j); // 不能调用 static 修饰的内部函数
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue