簡體   English   中英

C-內存對齊argv?

[英]C - memory align argv?

我在Linux上,用C語言進行編碼,並嘗試使用argv變量的align屬性,但是沒有運氣:

我們如何使argv參數(每個參數)與定義的邊界對齊,例如16位, 而無需通過memcpy或替代方法將其首先復制到對齊的變量中

可能嗎?

這不可能。 align屬性告訴編譯器如何對齊為其生成代碼和數據的結構。 它還告訴編譯器外部結構和其他代碼生成的數據的實際對齊方式。

argv參數由C啟動代碼或操作系統直接提供。 除了指針數組的隱式自對齊之外,不應對它們的對齊做任何假設。 您不能使用編譯器屬性來更改它,建議不要強制編譯器做出其他假設。

在某些實現中,argv變量可以直接指向原始命令行,在該命令行中,每個參數后的第一個定界符(空格)已被替換為null。 在這樣的實現中,很明顯,對齊就是它,是無法控制的!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM