Câu hỏi được gắn thẻ «memory-alignment»




4
Các biến ngăn xếp có được căn chỉnh bởi GCC __attribute __ ((căn chỉnh (x))) không?
tôi có mã sau: #include <stdio.h> int main(void) { float a[4] __attribute__((aligned(0x1000))) = {1.0, 2.0, 3.0, 4.0}; printf("%p %p %p %p\n", &a[0], &a[1], &a[2], &a[3]); } Và tôi có kết quả sau: 0x7fffbfcd2da0 0x7fffbfcd2da4 0x7fffbfcd2da8 0x7fffbfcd2dac Tại sao địa chỉ của a[0]không phải là bội số 0x1000? Chính xác là …


2
Tại sao các địa chỉ của argc và argv cách nhau 12 byte?
Tôi đã chạy chương trình sau trên máy tính của mình (Intel 64-bit chạy Linux). #include <stdio.h> void test(int argc, char **argv) { printf("[test] Argc Pointer: %p\n", &argc); printf("[test] Argv Pointer: %p\n", &argv); } int main(int argc, char **argv) { printf("Argc Pointer: %p\n", &argc); printf("Argv Pointer: %p\n", &argv); printf("Size of …

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.