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

150 篇文章 0 订阅


#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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值