外排的问题
我理解“内联”本身就是对编译器的一种建议,在它的设计过程中,它可能会或可能不会内联这个函数,它还会生成可链接的对象代码。
我认为“静态内联”也是如此(可能是内联,也可能不是内联),但是在内联时不会生成可链接的对象代码(因为没有其他模块可以链接到它)。
“内插”在图片中的位置是什么?
假设我想用内联函数替换预处理器宏,并要求这个函数内联(例如,它使用_file_和_line_宏,应该为调用方解析,而不是这个被调用的函数)。也就是说,如果函数没有内联,我希望看到编译器或链接器错误。“extern inline”会这样做吗?(我假设,如果没有,除了坚持宏之外,没有其他方法可以实现这种行为。)
C+和C之间有什么区别吗?
不同的编译器供应商和版本之间有区别吗?