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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.