swallow1029 发表于 2012-4-10 10:36:29

_EXTERN_ int XX 和 extern int XX 一样嘛?

我在 一些程序中,经常遇到这样的定义,1:int  XX  在FF.C 文件里面这样定义一个变量,
                                                                          在FF.H 头文件里面这样引用。_EXTERN_ int XX
                                                                         2:int  XX  在FF.C 文件里面这样定义一个变量,
                                                                          在FF.H 头文件里面这样引用。extern int XX
                                        在 1 中 为什么 要 在 extern 的下面加上 下划线?有什么作用?
                                        在  2 中 的extern 和 1 中的 EXTERN 是一样的吗?

swallow1029 发表于 2012-4-10 11:32:49

RE:_EXTERN_ int XX 和 extern int XX 一样嘛?

:L
真的伤不起呀!

发表于 2012-4-10 17:12:46

RE:_EXTERN_ int XX 和 extern int XX 一样嘛?

EXTERN 是外部声明,这个是用于全局变量。

swallow1029 发表于 2012-4-10 18:18:17

回复:_EXTERN_ int XX 和 extern int XX 一样嘛?

回复第 3 楼 于2012-04-10 17:12:46发表:
EXTERN 是外部声明,这个是用于全局变量。 

哥哥 你好像没有明白我的意思,我知道是外部声明的,我是说他们又什么区别吗?

悠然见南山 发表于 2012-4-10 19:47:22

RE:_EXTERN_ int XX 和 extern int XX 一样嘛?

有打错么?
_EXTERN_ 这个在STM32F4的FW里,Utilities目录下的那个ff。h里没找到啊

发表于 2012-4-11 09:07:31

RE:_EXTERN_ int XX 和 extern int XX 一样嘛?

你可以查看一下_EXTERN_ int定义,我他可能是typedef或者define了一个:extent int,这样是方便了在使用过程中避免忘记加int的情况。

swallow1029 发表于 2012-4-11 09:16:15

回复:_EXTERN_ int XX 和 extern int XX 一样嘛?

回复第 6 楼 于2012-04-11 09:07:31发表:
你可以查看一下_EXTERN_ int定义,我他可能是typedef或者define了一个:extent int,这样是方便了在使用过程中避免忘记加int的情况。 

呵呵  你好,我不得不再一次说一下。_EXTERN_ Bool NtrxCalibration ; 这个 就是在程序的 定义 了。我现在想问的问题是
           EXTERN 的两边为什么要加上  下划线?如果不加的话 行吗?它和 extern  Bool NtrxCalibration  是一样的吗?

发表于 2012-4-11 10:28:14

RE:_EXTERN_ int XX 和 extern int XX 一样嘛?

不一样。externBool 这个是声明bool,这个用到2个定义。_EXTERN_Bool 这是一个伪定义,虽然他们的结果是一样的,但是用法是不一样的。比如:typedef _EXTERN_Bool (externBool),你不能定义为typedef _externBool (externBool)。我建议你好好学习一下C语言基础知识。我解释半天,你也不明白。可能我说的不如书上说的明白,你可以看看书。

swallow1029 发表于 2012-4-11 12:19:34

回复:_EXTERN_ int XX 和 extern int XX 一样嘛?

回复第 8 楼 于2012-04-11 10:28:14发表:
不一样。externBool 这个是声明bool,这个用到2个定义。_EXTERN_Bool 这是一个伪定义,虽然他们的结果是一样的,但是用法是不一样的。比如:typedef _EXTERN_Bool (externBool),你不能定义为typedef _externBool (externBool)。我建议你好好学习一下C语言基础知识。我解释半天,你也不明白。可能我说的不如书上说的明白,你可以看看书。 

呵呵  说的让我感觉有点惭愧, _EXTERN_  的两边为什么要加 下划线?如果不加的话 会怎么样呢?但是 我在写程序的时候,加 下划线 有错误,不能编译过去,要是用 extern 就没有问题
页: [1]
查看完整版本: _EXTERN_ int XX 和 extern int XX 一样嘛?