由typedef定义的变量类型仅限于已定义的函数或文件。但是,如果要在其他文件中使用typedef定义的变量类型,通常会将typedef声明放在一个单独的文件(导入头文件)中,使用时使用#include命令导入该文件。Typedef用于声明新的类型名,而不是原始的类型名。例如,typedefintINTERGER或typedeffloatREAL相当于用INTERGER表示int类型,用REAL表示float。在c语言中,习惯用大写字母表示用
#define是C中定义的语法,typedef是C中定义的语法,两者都可以在C中使用,但是#define变成了预编译指令,typedef被当作语句。
1.首先,执行时间不同。
关键字typedef在编译阶段是有效的,所以typedef因为是在编译阶段,所以具有类型检查的功能。
Define是一个宏定义,发生在预处理阶段,也就是编译之前,它只执行简单机械的字符串替换,不做任何检查。
2.不同的功能
Typedef用于定义类型的别名,不仅包括内部类型(int,char等。),还包括自定义类型(如struct),这样可以使类型容易记忆。
#
函数指针和指针函数的区别
1.名称解析。这两个名词都是带修饰语的名词,可以稍微扩展一下,中间加一个助词。现在看函数的指针和指针的作用,稍微清楚一点。现在扩展一下,加一些修饰符——函数的指针和返回值是指针的函数现在基本清楚了。
2.格式。
类型(*pfunc)(类型para)-函数指针。
type*func(typepara)-指针函数。
3.让让我们先来谈谈指针函数。其实就是一个普通的函数,只不过返回值是一个指针(其实是一个地址)。很多人觉得很神秘是因为怕指针!
4.函数指针。这个有点复杂。首先,*和pFunc先组合,优先级最高,所以PFunc是指针,同时这个指针后面带了一对括号,里面有参数,和函数的参数格式一样,所以这个指针是函数指针,这个指针前面有一个类型——返回值类型!有些人觉得这里很陌生。为什么指针会返回值?
5.指针有返回值是因为在使用的时候会指向一个和自己格式相似的函数,所以指针的返回值和参数格式决定了被指向函数的格式!
6.函数指针要精通,而且必须精通,因为函数指针的使用体现了C语言中的关联特性,也是C语言中多态性的雏形!