zoukankan      html  css  js  c++  java
  • C语言程序设计--宏和预处理

    C语言宏



    宏定义常量


    #include <stdio.h>
    
    #define SIZE 100
    #define BANNER "WARNING:"
    
    int main(void){
    	printf("%d
    ", SIZE);
    	printf("%s
    ",BANNER);
    	return 0;
    }
    

    宏定义数据类型


    #include <stdio.h>
    
    #define string char*
    
    int main(void){
    	string banner = "HELLO, WORLD!";
    	printf("%s
    ",banner);
    	return 0;
    }
    

    宏定义函数


    #include <stdio.h>
    #include <stdlib.h>
    
    #define random (rand()%100)
    
    int main(void){
    	while(1){
    		int num = random;
    		printf("%d
    ", num);
    		if (num >= 50){
    			break;
    		}
    	}
    	return 0;
    }
    

    宏定义带参数函数


    #include <stdio.h>
    #include <stdlib.h>
    
    #define max(a,b) a>b?a:b
    
    int main(void){
    	int max_num;
    	max_num = max(10,100);
    	printf("%d
    ",max_num);
    	max_num = max(10,6);
    	printf("%d
    ",max_num);
    	return 0;
    }
    

    宏解除定义


    #undef xxx
    

    预处理



    三个已知

    #include <stdio.h>//包含文件
    #define SIZE 100 //定义宏
    #undef SIZE  //解除宏定义
    

    条件宏定义


    #define MAX 100
    #ifdef MAX //如果定义了MAX宏
        #undef MAX
    #else //否则
        #define MAX 10
    #endif
    #ifndef MIN//如果没有定义MIN
        #define MIN 2//定义宏MIN为2
    #endif
    

    另外的条件判断


    #include <stdio.h>
    #include <stdlib.h>
    
    #define MAX_THREAD 10
    #if MAX_THREAD > 5
    	#undef MAX_THREAD
    	#define MAX_THREAD 5
    #endif
    
    
    int main(void){
    	printf("%d
    ",MAX_THREAD);
    	return 0;
    }
    /*同理#else和#elif的用法与else 和else if类似*/
    

    最后两个


    /*
    #error	当遇到标准错误时,输出错误消息
    #pragma	使用标准化方法,向编译器发布特殊的命令到编译器中
    */
    
  • 相关阅读:
    st-load视频性能测试
    gitlab-ci集成SonarQube代码质量检查
    退役记
    洛谷 P5195 【[USACO05DEC]Knights of Ni S】
    洛谷 P4742 【[Wind Festival]Running In The Sky】
    洛谷 SP13105 【MUTDNA
    洛谷 P3174 【[HAOI2009]毛毛虫】
    洛谷 P1542 【包裹快递】
    Python函数的返回值
    ubuntu18.04修改国内apt源
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/10236810.html
Copyright © 2011-2022 走看看