您的位置:首页 > 其它

typedef的使用...typedef int (*Func)(int,int); Func func = sum;

2016-01-02 07:20 369 查看
#include <stdio.h>
int sum(int a, int b)
{
return a + b;
}
int main(int argc, const char * argv[])
{
// 宏定义、文件包含、条件编译 || 宏定义、文件包含、条件编译
/*
C程序中使用的编译预处理命令均以#开头,它在C编译系统对源程序进行编译之前,先对程序中这些命令进行“预处理”。
编译预处理命令的三种不同形式: 宏定义、文件包含、条件编译。
*/
/**

一般高级语言程序编译的过程:预处理、编译、汇编、链接。

预处理 : 是C语言程序从源代码变成可执行程序的第一步,主要是C语言编译器对各种预处理命令进行处理,包括头文件的包含、宏定义的扩展、条件编译的选择等。
编译 : 编译之前,C语言编译器会进行词法分析、语法分析(-fsyntax-only),接着会把源代码翻译成中间语言,即汇编语言。
汇编 : 把作为中间结果的汇编代码翻译成了机器代码,即目标代码,不过它还不可以运行。
链接 : 链接是处理可重定位文件,把它们的各种符号引用和符号定义转换为可执行文件中的合适信息(一般是虚拟内存地址)的过程。

*/

//************************ stone ***

// 1: 基本数据类型
typedef long NSInteger;

// 2: 数组,
typedef int ARRAY[5];
ARRAY a1 = { 1, 2, 3, 4, 5 }, b1 = { 5, 4, 3, 2, 1 };
for (int i = 0; i < 5; i++) {
printf("%d\t", a1[i]);
}
printf("\n");
for (int i = 0; i < 5; i++) {
printf("%d\t", b1[i]);
}
printf("\n");

// 3: 结构体, 匿名结构体 其别名.
typedef struct {
char * name;
int age;
} Person;
Person p = { "项羽", 55 };
printf("name = %s , age = %d\n", p.name, p.age);

// 4: 给枚举类型起别名
typedef enum { sunday,
monday,
tuesday,
wednesday,
thursday,
friday,
saturday } Weekday;
Weekday w1;

w1 = sunday; //枚举就能赋值.
printf("%d\n", w1);

// 5: 函数指针起别名
typedef int (*Func)(int,int);
Func func = sum;

printf("%d\n",func(5,4));

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: