黑马程序员-c语言宏定义以及外部变量
来源:互联网 发布:乐清知临寄宿学校 编辑:程序博客网 时间:2024/06/08 05:39
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
int num;int num2;void test();int main(int argc, const char * argv[]) { extern int num; extern int num2; num = 10; num2 = 12; printf("%d %d",num,num2); test(); return 0;}void test(){ printf("%d %d",num,num2);}通过两个不同块的方法,说明显式的extern只是为了程序的可读性更好
#include <stdio.h>#include <string.h>#define TWO 2#define FOUR TWO*TWO#define SQUARE(x) x*x#define PR(x) printf("is %d \n",x)#define PR_2(x) printf("is "#x" \n")#define XNAME(n) X##n#define PR_CHANGE(...) printf(__VA_ARGS__)#define MAX2(X,Y) (X>Y?X:Y)#define ABS(X) (X<0?-X:X)int main(int argc, const char * argv[]) { PR(SQUARE(FOUR)); PR_2(8); PR_2(SQUARE(FOUR)); int XNAME(1) = 100; printf(" %d\n",X1); PR_CHANGE("hello Word\n"); #undef MAX2#ifdef MAX2 int i = MAX2(5, 8); printf(" %d\n",i); int j = ABS(-10); printf(" %d\n",j); int f = MAX2(5, 8);#else printf("MAX2 not has\n");#endif#if TWO == 2 printf("TWO == 2");#endif #if defined(FOUR) printf("FOUR is ok");#endif return 0;}
is 16
is 8
is SQUARE(FOUR)
100
hello Word
MAX2 not has
TWO == 2
FOUR is ok
上述代码展示常用宏方法
宏本身是文本替换,所以尽量不要宏中放置分号
在一些简单函数宏中,需要注意由于宏是文本替换,要小心传入奇怪的文本例如输出中的is SUARE,就是由于文本替换导致的错误
# 和##属于宏中的字符转换
其中的__VA_ARGS__是一个预定义宏,在宏参数中使用...可以实现宏中的文本替换
0 0
- 黑马程序员-c语言宏定义以及外部变量
- 黑马程序员----C语言内部函数,外部函数,内部变量,外部变量篇
- 【黑马程序员】【C语言】宏定义
- 黑马程序员--C语言之数组的定义以及使用
- 黑马程序员-C语言常量、变量
- 【黑马程序员】【C语言】变量
- 黑马程序员——c语言宏定义
- 黑马程序员-C语言之全局变量和局部变量
- 黑马程序员--C语言基础-变量类型
- 黑马程序员---C语言变量作用域
- 黑马-C语言-宏定义
- C语言外部变量
- 黑马程序员——C语言基础(二)数据类型、常量以及变量
- 黑马程序员------C语言中变量的概念,初始化和引用以及作用域
- C语言外部变量的使用以及erxtern的用法
- c语言变量定义
- C语言:变量定义
- 39 C语言变量的定义位置以及初始值
- int,NSInteger,NSUInteger,NSNumber区别
- 怀恋抗日的英雄
- JavaScript冒泡实例
- 黑马程序员-c语言结构体,联合以及枚举
- 第二十一次codeforces竞技结束 #277 Div 2
- 黑马程序员-c语言宏定义以及外部变量
- Spark - A tiny Sinatra inspired framework for creating web applications in Java 8 with minimal effor
- Spark Getting started
- 第二十二次codeforces竞技结束 #278 Div 2
- The substring() Method in JDK 6 and JDK 7
- Script Control 组件Win7 X64平台运行问题及示例
- jQuery中$.get $.post $.getJSON $.ajax方法详解
- jQuery中$.get、$.post、$.getJSON和$.ajax的用法
- ajax原生代码