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;
}
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;
}
相关文章推荐
- Leetcode: Maximum Product of Word Lengths
- juqery中checkbox的click事件
- *Paint House
- 极客DIY:使用Arduino制作一块开源手表
- ios学习顺序表
- 二.OC基础--1,对象的存储细节,2,#pragma mark指令,3,函数和对象方法的区别,4,对象和方法之间的关系 ,5.课堂习题
- 一.OC基础之:1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问
- 1.import和include区别 2.NSLog 和printf区别 3.创建对象做的事情 4. 类和对象方法比较 5 匿名对象优缺点 6. 封装 7.作用域范围 8.id和instancetype 9.自定义构造方法规范 10.nil和Nil及NULL、NSNull区别
- C语言-1.static 和 extern使用,2.文件,3.数据块读写
- C语言-1.结构体,2.枚举,3.typedef,4.预处理指令的概念,5.条件编译
- 字符串输出输入函数,const修饰符,内存分区,动态内存管理,指针和函数,结构体
- c语言和oc对比
- Leetcode: Shortest Distance from All Buildings
- DELPHI编写服务程序总结
- 12306出现了这么多年为何还是如此渣
- 指针和数组的面试题
- [ES6] Function Params
- 小娜名言:有问题尽管问我i
- 【Linux探索之旅】第四部分第四课:分析网络,隔离防火
- 结构体指针 & 结构体嵌套使用...