c - 内联函数全局范围
问题描述
正如我在这里读到的,内联函数不必内联。所以假设我们有这样的代码:
int a = 0;
inline void myFunc(){
extern int a;
a = 1;
}
int main(){
int a = 0;
myFunc();
}
- 标准是否保证
a
将分配哪个变量1
? - 内联函数是否在内联之前编译为特定代码?如果是这样,如果我使用
register
关键字 fora
inmain
怎么办?
编辑:全局int a
不必在同一个 .c 文件中声明
解决方案
内联函数不会将其引入调用者的范围。在函数中声明的标识符(例如a
在main
您的示例中)在其他函数中不可见。
所以inline
是无关紧要的,顶层a
是值发生变化的那个。
推荐阅读
- python - Matplotlib 图例多次绘制名称数据标题
- python - 使用 Pandas 通过字符串从网站中查找特定表
- python - 为什么即使同时设置 inter_op_parallelism_threads 和 intra_op_parallelism_threads = 1,Tensorflow 也会产生多个线程(线程数 262)
- node.js - 节点离线反应firebase聊天应用程序
- ios - 动画阴影属性
- hangouts-chat - 由于“您的管理员阻止您在直接消息中与机器人交谈”,因此无法向机器人发送消息
- python - 从重新采样的数据框中一次选择一个日期
- android - 为什么建议将 onClickListener 附加到 ViewHolder?
- python - 如何在 python 中使用 K 均值识别和分离集群?
- css - 为什么没有应用我的活动标签样式?