本篇提供了关于C语言程序设计中函数部分的经典案例,可供C语言的初学者们进行一个学习和编译练习。
/*Case 1
最简单的预处理
将矩形的长和宽设置为宏,然后再求出矩形的面积*/
#define L 4 //定义长为4
#define W 3 //定义宽为3
int main() {
int area;
area = L * W;
printf("area=%d\n", area);
return 0;
}
/*Case 2
第二简单的预处理
使用宏定义,依次交换两个一维数组中的元素*/
#define SWAP(a,b) {int temp;temp=a;a=b;b=temp;}
int main(){
int i,j;
int a[5] = { 3,4,5,6,7 };
int b[5] = { 5,6,7,8,9 };
for ( i = 0; i < 5; i++)
{
SWAP(a[i], b[i]);
}
printf("交换后:\n");
for ( i = 0; i < 5; i++)
{
printf("%d", a[i]);
}
printf("(数组a)\n\n");
for (i = 0; i < 5; i++)
{
printf("%d", b[i]);
}
printf("(数组b)\n\n");
return 0;
}
/*Case 3
文件包含
设计一个头文件,将经常使用的输出模式都写进头文件中,方便编写代码*/
头文件:
#define INT(a) printf("%d\n",a)
源文件:
#include <foo.h>
int main() {
int a;
printf("请输入一个整数:\n");
scanf("%d", &a);
INT(a); //替换成foo.h文件中定义的那句代码
return 0;
}
/*Case 4
32还是64?
使用条件编译,根据条件输出对应的判定结果:
如果系统是32位的,就输出“系统是32位的”
如果系统是64位的,就输出“系统是64位的”*/
#define Win32 0
#define x64 1
#define SYSTEM Win32 //定义宏SYSTEM是32位的
int main() {
#if SYSTEM==Win32 //此处条件成立
printf("Win32\n");
#else
printf("x64\n");
#endif
return 0;
}
/*Case 5
神奇的#include<stdio.h>*/
//1.#ifdef指令
//用来判断某个宏是否被定义,通常与#endif一起使用
//#ifdef宏名
// 程序段1
//#else
// 程序段2
//#endif //用于控制单独的一段源码是否需要编译,类似于一个单独的#if/#endif
//2.ifndef指令
// 用来确定某个宏是否被定义,若没有被定义,那么就编译到#ifndef到#endif中间的内容,否则就跳过
// #ifndef宏名
// 程序段1
// #else
// 程序段2
// #endif
#include<stdio.h>中使用了#ifndef指令,所以不会发生重定义报错。
本篇的所有代码是在VS编译环境下操作的,如有错误,望大家指正!!!