Questions tagged «extern»


1
“ FOUNDATION_EXPORT”和“ extern”
我想问一下在Objective C项目中使用FOUNDATION_EXPORT而不是背后的原因是什么。extern 我检查了这个问题,使用FOUNDATION_EXPORT赢得了340分(第一名),而extern仅获得74分(第二名)。 有人可以解释为什么吗?有使用FOUNDATION_EXPORT代替的任何实际原因extern吗? 谢谢!

5
使用外部模板(C ++ 11)
图1:功能模板 TemplHeader.h template<typename T> void f(); TemplCpp.cpp template<typename T> void f(){ //... } //explicit instantation template void f<T>(); Main.cpp #include "TemplHeader.h" extern template void f<T>(); //is this correct? int main() { f<char>(); return 0; } 这是正确的使用方法extern template,还是仅将关键字用于类模板,如图2所示? 图2:类模板 TemplHeader.h template<typename T> class foo { T f(); }; TemplCpp.cpp template<typename T> …
116 c++  templates  c++11  extern 

6
extern内联有什么作用?
我知道,这inline本身就是对编译器的建议,它可以酌情决定是否内联函数,也可以生成可链接的目标代码。 我认为这样static inline做相同(可以内联或不可以内联),但是在内联时不会产生可链接的目标代码(因为没有其他模块可以链接到它)。 哪里extern inline适合图片? 假设我想用一个内联函数替换一个预处理器宏,并要求该函数内联(例如,因为它使用了应该为调用者解析但不为该调用函数解析的__FILE__和__LINE__宏)。也就是说,如果函数未内联,我想查看编译器或链接器错误。不extern inline这样做呢?(我认为,如果没有,除了坚持使用宏之外,没有其他方法可以实现此行为。) C ++和C之间有区别吗? 不同的编译器供应商和版本之间有区别吗?

6
在Objective-C中向前声明枚举
我在Objective-C程序中的枚举可见性遇到麻烦。我有两个头文件,一个头文件定义了一个typedef enum。另一个文件需要使用typedef'd类型。 在直接C语言中,我将只是#include另一个头文件,但是在Objective-C中,建议不要#import在头文件之间使用,而是@class根据需要使用前向声明。但是,我不知道如何前向声明枚举类型。 我不需要实际的枚举值,除了在相应的.m实现文件中,可以放心使用#import。那么,如何typedef enum在标头中识别它?

1
为什么不同块中相同命名的extern局部变量在c ++中的编译器之间得到不同的链接?
当我只是检查哪些链接被授予外部局部变量时, 我发现编译器之间存在一些不同的行为 例如,如果我测试了下面的代码, 如您在comment变量中看到的那样,var它们具有不同的链接 // foo.cpp int var = 10; // external linkage // main.cpp #include <iostream> static int var = 100; // internal linkage int main() { extern int var; // internal linkage std::cout << var << std::endl; { extern int var; // g++: external linkage , clang++: internal …
12 c++  g++  clang++  extern  linkage 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.