gpt4 book ai didi

C++ 在函数前使用 extern

转载 作者:行者123 更新时间:2023-11-30 00:58:01 24 4
gpt4 key购买 nike

我从这里看到了彭博社的采访问题:http://www.careercup.com/question?id=383154

extern void print(int *a, int z);
void print(int *a, int z);

问题1>会编译吗?

问题2>如果编译通过,是什么意思?

extern int i;
int i;

问题3>会编译吗?

问题4>如果编译通过,说明什么?

最佳答案

// a function declaration
extern void print(int *a, int z);
// still a function declaration
void print(int *a, int z);

答案 1

是的,它编译成功。

答案 2

没有主体 {} 的全局函数自动成为函数声明。关键字 extern 是可选的。所以它们都只是声明。多个声明就可以了。

// a variable declaration
extern int i;
// a variable definition without an initializer
int i;

答案 3

是的,它编译成功。

回答 4

一个是声明,一个是定义。请注意,此定义没有初始化程序。对于全局变量,需要显式添加关键字 extern 来区分声明和定义。而且它完全符合 One Definition Rule在 C++ 中。

编辑:我无法打开那里的链接。我假设您提到的代码是在全局范围内。

关于C++ 在函数前使用 extern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7035362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com