- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个文件funcs.h
,其中有函数声明:
inline void some_func( void ) __attribute__((always_inline));
然后我有一个文件 funcs.c
,其中包含函数的实现:
inline void some_func( void ) { … }
然后在我的主文件 main.c
中,我 #include
funcs.h
并尝试使用 some_func()
代码中的某处。但是,当我编译程序并查看二进制文件时,该函数似乎被编译为常规单独函数,并且像任何其他常规函数一样调用,而不是作为内联嵌入。
为什么会发生这种情况,有没有办法强制实际内联到此? (当然,除了仅使用 #define
宏而不是函数的选项。)
最佳答案
将实现放在标题中。如果它们在您打算进行内联的翻译单元中不可用,那么您就不走运了。链接器(嗯,传统链接器)无法为您做任何事情。
关于c - 当函数在不同文件中实现时 ((always_inline)) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289599/
我正在构建一个使用其他 CPP 代码的 RT CPP 程序。 我无法更改重复使用的代码! 我需要强制编译器内联几个方法。 我的问题显然是,我无法将 always_inline 添加到代码中并感到高兴。
我有一个文件funcs.h,其中有函数声明: inline void some_func( void ) __attribute__((always_inline)); 然后我有一个文件 funcs.
我想知道是否有人可以阐明这一点。我得到了一个包含一些 always_inline 方法的头文件,它包含在几个地方。自从我用更新版本的 gcc 4.7.1 升级操作系统 (Debian Wheezy)
我找到了以下函数定义: static inline __attribute__((always_inline)) int fn(const char *s) { return (!s || (*s
我正在使用 GCC 4.6 作为 Cortex 嵌入式处理器的 lpcxpresso ide 的一部分。我的代码大小非常有限,尤其是在 Debug模式下编译时。使用 属性 ((always_inlin
我在 QtCreator 中使用 C++ 中的 AES 指令集进行 AES 加密,这是我的代码: void aes256_enc(int8_t *plainText, int8_t *cipherTe
我正在尝试在某些文件上实现和编码,其中一些文件包含 SIMD 调用。我已经在服务器上编译了这段代码,运行的操作系统与我的机器基本相同,但我无法编译它。 这是错误: make g++ main.cpp
我使用英特尔函数 _rdrand16_step() 编写了一段代码,在 Windows(Visual Studio 2017)上运行良好,但在 Linux(g++)上我无法使其运行。我在我的代码中调用
当我尝试包含一个包含内联函数定义的 .h 文件时 __attribute__( ( always_inline ) ) __STATIC_INLINE uint32_t __SLA (int32_t
这个问题在这里已经有了答案: inlining failed in call to always_inline '__m256d _mm256_broadcast_sd(const double*)
我正在尝试运行一个由我的 friend 创建的 Visual Studio cpp 项目。我试图在没有 VS 的情况下运行该文件。但是我得到了一个错误列表,所有的格式都相同: inlining fai
我正在尝试使用使用 SIMD 内在函数的 cmake 编译 C 程序。当我尝试编译它时,出现两个错误 /usr/lib/gcc/x86_64-linux-gnu/5/include/smmintrin
我正在 Ubuntu-16.04 中构建一个 c 程序。正如另一个答案之一所示 here ,我已经设置了 cflag 环境变量,并且正在运行 gcc 命令,如下所示 export CFLAGS="-
这个问题在这里已经有了答案: inlining failed in call to always_inline ‘_mm_mullo_epi32’: target specific option mi
我是一名优秀的程序员,十分优秀!