亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1867 | 回復: 6
打印 上一主題 下一主題

[C] 請各位幫我分析一下這個GAS文件 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-03-18 11:18 |只看該作者 |倒序瀏覽
都知道C中的數(shù)組要不給定大小,要不在堆中動態(tài)分配,而將變量作為數(shù)組長度是非法的,那么這么做到底會發(fā)生什么事情呢?我試了一下,源代碼如下:

  1. //test.c
  2. void test()
  3. {
  4.     int a = 10;
  5.     int p[a];
  6.     p[3] = 2;
  7. }
復制代碼

$gcc -S test.c
生成的test.s的片斷

  1. test:
  2.         pushl   %ebp
  3.         movl    %esp, %ebp
  4.         subl    $24, %esp
  5.         movl    %esp, %eax
  6.         movl    %eax, %edx
  7.         movl    $10, -4(%ebp)
  8.         movl    -4(%ebp), %eax
  9.         sall    $2, %eax
  10.         addl    $15, %eax
  11.         addl    $15, %eax
  12.         shrl    $4, %eax
  13.         sall    $4, %eax
  14.         subl    %eax, %esp
  15.         movl    %esp, -20(%ebp)
  16.         movl    -20(%ebp), %eax
  17.         addl    $15, %eax
  18.         shrl    $4, %eax
  19.         sall    $4, %eax
  20.         movl    %eax, -20(%ebp)
  21.         movl    -20(%ebp), %eax
  22.         movl    %eax, -8(%ebp)
  23.         movl    -8(%ebp), %eax
  24.         movl    $2, 12(%eax)
  25.         movl    %edx, %esp
  26.         leave
  27.         ret
復制代碼

編譯器獲得了棧中變量的值后,進行了一系列固定的算術(shù)操作(不以變量的值為改變),這么做究竟有什么意義呢?請各位幫我分析一下,謝謝!

論壇徽章:
0
2 [報告]
發(fā)表于 2009-03-18 12:16 |只看該作者
而將變量作為數(shù)組長度是非法的


很不幸,你的假定是錯誤的。

論壇徽章:
0
3 [報告]
發(fā)表于 2009-03-18 13:53 |只看該作者
引用樓上的話,“同學,你的教材該更新了”


C99支持變長數(shù)組

論壇徽章:
0
4 [報告]
發(fā)表于 2009-03-18 14:50 |只看該作者
原帖由 net_robber 于 2009-3-18 13:53 發(fā)表
引用樓上的話,“同學,你的教材該更新了”


C99支持變長數(shù)組


正確的說法!

論壇徽章:
0
5 [報告]
發(fā)表于 2009-03-21 00:07 |只看該作者
汗,我太火星了,謝謝樓上各位。。。

論壇徽章:
0
6 [報告]
發(fā)表于 2009-03-25 11:12 |只看該作者
原帖由 system888net 于 2009-3-18 14:50 發(fā)表


正確的說法!

很多編譯器不支持吧

論壇徽章:
0
7 [報告]
發(fā)表于 2009-03-25 11:39 |只看該作者

回復 #6 honey709 的帖子

同學,你該更新你的編譯器了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP