typedef
/*
typedef
1.用一个新的类型名代替原来的类型名
typedef int integer;
typedef float real;
int i,j;float a,b; 与 integer i,j; real a,b;等价
2.命名一个简单的类型名代替复杂的类型表示方法
(1)命名一个新的类型名代表结构体类型
typedef struct
{int month;int day;int year;}Date;
Date birthday;
Date *p
(2)命名一个新的类型名代表数组类型
typedef int num[100];
num a;
(3)命名一个新的类型名代表一个指针类型
typedef char *string;
string p,s[10];
(4)命名一个新的类型名代表指向函数的指针类型
typedef int(*pointer)();
pointer p1,p2;
总结:声明新的类型名的方法:
1先按定义变量的方法写出定义体(int i;)
2将变量名换成新类型名(将i换成count)
3在最前面加typedef
typedef int count
4用新类型名去定义变量
Ⅰ.以定义数组类型为例:
int a[100];
int num[100];
typedef int num[100];
num a;
int a[100];
Ⅱ.字符指针类型:
char *p;
char *string;
typedef char *string;
string p;等价char *p;
*/
#include <stdio.h>
typedef int intjie;
int main()
{
int x = 90;
intjie y = 100;
printf("\nx=%d\n\n", x);
printf("\ny=%d\n\n", y);
printf("\nx=%d\n\n", sizeof(x));
printf("\ny=%d\n\n", sizeof(y));
return 0;
}
预处理
/*
预处理
#开始的预编译指令
Ⅰ宏定义#define
(1)无参宏定义
#define 标识符 字符串
定义常量
#define max_time 1000
(2)带参宏定义
#define 宏名(形参表)字符串
带参宏调用的一般形式:
宏名(实参表);
Ⅱ文件包含#include
引入对应的头文件(.h文件)
#include < >:会在系统路径下查找头文件
#include" ":首先在当前目录下查找头文件,没找到,再去系统路径下查找
二者区别在于头文件的搜索路径不同
Ⅲ条件编译#ifdef
预处理器根据条件编译指令,有条件选择源程序代码中的一部分代码作为输出,送给编译器进行编译
条件编译指令:
#if 条件为真,执行
#elif 前面条件为假,该条件为真,执行
#else 前面条件均为假,执行
#endif 结束相应的条件编译指令
#ifdef 如果宏已定义 执行
#ifndef 如果宏没定义,执行
(1)#if-#else-#endif
#if 条件表达式
程序段1
#else
程序段2
#endif
功能是:如果#if表达式为真,则程序段1被选中,否则程序段2被选中
(2)#ifndef-#define-#endif
#ifndef 标识符
#define 标识符 替换列表
//...
#endif
功能:检测程序中是否已经定义了名字为某标识符的宏,如果没有,则定义宏,选中#define到#endif的程序,已定义不再重复定义该符号
(3)#if--#elif-#else-#endif
#if 条件表达式1
程序段1
#elif 条件表达式2
程序段2
#else
程序段3
#endif
功能:先判断条件1,为真,执行程序1,为假,而条件2为真,执行程序2,其他情况,执行3
4)#ifdef--#endif
#ifdef 标识符
程序段
#endif
功能:检测到已定义标识符,执行相应程序
*/
#include <stdio.h>
typedef int intjie;
#define Max 10000
#define s(x,y) x*x+y
int main()
{
printf("结果=%d\n\n", s(10,5));
int x = 90;
intjie y = 100;
printf("\nx=%d\n\n", x);
printf("\ny=%d\n\n", y);
printf("\nx=%d\n\n", sizeof(x));
printf("\ny=%d\n\n", sizeof(y));
printf("x=%d\n\n", Max);
return 0;
}
#include <stdio.h>
#define N 200
int main()
{
#ifndef N
printf("\nNNNNN\n\n");
#else
printf("\nMMMMM\n\n");
#endif
return 0;
}