亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標題:
noreturn屬性?
[打印本頁]
作者:
Horizon2012
時間:
2011-09-17 10:22
標題:
noreturn屬性?
#include <stdio.h>
int __attribute__((noreturn)) func (int i)
{
if (i < 5) {
printf ("%d\n", i);
}else{
printf ("return");
// return 1;
}
}
int main (int argc, char** argv)
{
// int ret;
func (1);
//printf("ret = %d\n", ret);
// ret = func (8);
// printf("ret = %d\n", ret);
return 0;
}
復制代碼
我聲明了函數(shù)func為noreturn,為什么編譯的時候會打印
test_3.c: In function 'func':
test_3.c:11: warning: 'noreturn' function does return
運行時候打印
1
Segmentation fault
即使我不注釋掉func中的return 1 還是會這樣的?
noreturn 屬性到底咋用的?
作者:
Horizon2012
時間:
2011-09-17 11:05
我參看了網(wǎng)上的一些資料,改寫成這樣
#include <stdio.h>
void __attribute__((noreturn)) func (int i)
{
printf("%d\n",i);
}
int print (int i)
{
if (i > 4){
return 1;
}else{
func(2);
}
}
int main (int argc, char** argv)
{
print (3);
}
復制代碼
編譯打印
test_3.c: In function 'func':
test_3.c:7: warning: 'noreturn' function does return
運行的時候一直打。
2
2
2
2
2
。
。
。
2
2
2
Segmentation fault
感覺好像反復調用func(2); 那樣?
這是什么原因呢?
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2