消除警告函数前面加上__ attribute__((unused)) #include <stdio.h> int main() { printf("main\n"); return 0; } __attribute__((unused))static void a(void) { printf("a\n"); } noreturn __ attribute__((noreturn)):这个属性告诉编译器函数永远不会有返回值,可以避免当一个函数需要返回值...
unused:告诉编译器该变量或函数未被使用,避免编译器产生警告。 noreturn:告诉编译器该函数不会返回,避免编译器产生警告。 format:指定函数的参数格式,用于检查printf和scanf等函数的参数类型。 constructor: 指定函数为构造函数,在程序启动时自动执行。 destructor:指定函数为析构函数,在程序结束时自动执行__attribute__...
__attribute__ ((attribute-list)) 1 三、指定函数的属性 参看:GNU 声明函数的属性 在GNU C 中,您声明有关程序中调用的函数的某些内容,这有助于编译器优化函数调用并更仔细地检查您的代码。 以下属性目前在所有目标函数的定义: aligned, alloc_size, noreturn, returns_twice, noinline, noclone, always_inli...
externvoidexit(int)__attribute__((noreturn));externvoidabort(void)__attribute__((noreturn)); attribute((always_inline)) function attribute 对于声明为内联的函数,会强制优化。所有加了attribute((always_inline))的函数再被调用时不会被编译成函数调用而是直接扩展到调用函数体内。 attribute((noinline)) f...
在GCC C中,`__attribute__`关键字是一种编译器扩展,用于指定函数或变量的特殊属性。这些属性可以影响编译器如何生成代码,以及提供有关函数或变量的附加信息。以下是如何在GCC C中使用`...
一、__attribute__((weak, alias())) 弱符号 若两个或两个以上全局符号(函数或变量名)名字一样,而其中之一声明为weak symbol(弱符号),则这些全局符号不会引发重定义错误。链接器会忽略弱符号,去使用普通的全局符号来解析所有对这些符号的引用,但当普通的全局符号不
在C语言中,__attribute__((noreturn))的用途是什么? __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关 。 __attribute__((aligned(4)));设置4字节对齐方式,和#pragma pack(4) 效果一...
noreturn:用于标记函数永远不会返回。例如,在函数中调用了exit函数,它是一个不返回的函数。 void myExit() __attribute__((noreturn)); void myExit() { // Function body exit(0); } 复制代码 deprecated:用于标记函数已被弃用,不推荐使用。这在API升级或替代旧函数时非常有用。 int oldFunction() __...
extern void exit(int) __attribute__((noreturn)); extern void abort(void) __attribute__((noreturn)); 为了方便理解,大家可以参考如下的例子: //name: noreturn.c ;测试__attribute__((noreturn)) extern void myexit(); int test(int n) ...