0
点赞
收藏
分享

微信扫一扫

C语言经典案例——第七章 编译和预处理

宁静的猫 2022-04-05 阅读 26
c语言c++

本篇提供了关于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编译环境下操作的,如有错误,望大家指正!!!

举报

相关推荐

第七章

第七章:事务

第七章:集合

第七章 类

第七章 数组

第七章 集合

0 条评论