LED 弹幕灯牌 - 隐私政策
2026/6/10 15:20:10
在编程中,有些函数可能不会返回,比如函数中总是调用exit()函数。这时,程序员可以使用noreturn关键字标记该函数,让编译器知晓这一情况。示例代码如下:
__attribute__ ((noreturn)) void foo (int val) { /* ... */ }编译器了解到该函数不会返回后,就能进行额外的优化。需要注意的是,这种函数返回类型只能是void。
若一个函数返回的指针不会与现有内存产生别名(即指向同一内存地址),通常是因为该函数新分配了内存并返回其指针,此时可以使用malloc关键字标记该函数,编译器会进行相应优化。示例如下:
__attribute__ ((malloc)) void * get_page (void) { int page_size; page_size = getpagesize ( ); if (page_size <= 0) return NULL; return malloc (page_size); }warn_unused_result属性并非用于