【问题标题】:Can you explain what extern means and some other things? [closed]你能解释一下 extern 的含义和其他一些事情吗? [关闭]
【发布时间】:2011-08-31 18:24:40
【问题描述】:

我知道 extern C 意味着函数应该以 C 风格编译但是 extern function_datatype functionname 是什么意思?

extern void sharelog(const char *rem_host, const char *username,
         const char *, const char *,
         const char *, const char *);

没有“C”的外部是什么意思?

此外,在几乎每个程序的头文件中,我都看到了类似的内容

void sharelog(const char *rem_host, const char *username,
         const char *, const char *,
         const char *, const char *);

如果已经在 .c/.cpp 文件中完成了函数,为什么还要再次声明该函数? 有时也可以在没有参数的情况下声明它

int Function;

另外,有些函数可以这样写:

int CSomething::Somefunction() const

为什么要在函数后面加上const?

我还偶然发现了具有这些神秘点的函数

void function(int prio, const char *fmt, ...)

还有很多其他的事情我也想问,但似乎我已经问得够多了。 我知道你们中的一些人可能会说去学习 C/C++,但是相信我,这些东西不是为初学者讨论的。

【问题讨论】:

  • 你真的应该把它分成多个问题,试图回答一个n向问题是很烦人的。
  • 而且您的问题的主题只是远程相关。它们真的应该是单独的问题。
  • @unwind:另外,您不能将其作为其他 4 个问题的重复项关闭。
  • 最好将它们分别作为单独的问题...
  • 我已经问过了,既然已经回答了,就不用再问了。

标签: c++ c


【解决方案1】:
【解决方案2】:

没有"C"extern 来自前C++ 时代,当时您需要一种方法来告诉C 编译器某个函数在“某处”可用,并且它应该允许链接器找出它。

extern 的声明允许编译器将函数添加到已知名称列表中,即使它无法解析地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 2014-09-29
    • 2013-09-16
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    相关资源
    最近更新 更多