Có lẽ là một câu hỏi ngây thơ - tôi đã từng sử dụng chương trình 20 năm trước và chưa được mã hóa nhiều kể từ đó. bộ nhớ của tôi như thế nào C preprocessor
công trình đã teo đáng kể kể từ đó ...Định dạng mảng cho #define (bộ tiền xử lý C)
Tôi đang viết một chương trình rất đơn giản C
và tôi đang cố gắng để khai báo một vài mảng tĩnh toàn cầu, nhưng kích thước của arrays
sẽ phụ thuộc (trên một cách không tầm thường) trên biến số MODE
. Một cái gì đó giống như ví dụ đơn giản dưới đây.
Hai điểm nhanh: Tôi biết tôi có thể chỉ kích thước arrays
theo kích thước lớn nhất cần thiết bởi bất kỳ MODE
, nhưng tôi không muốn điều đó vì (không giống như trong ví dụ đơn giản bên dưới) đôi khi một số ít các thứ nguyên này sẽ cực kỳ lớn trong khi những người khác thì nhỏ.
Ngoài ra, tôi muốn sử dụng các mảng toàn cục được xác định tĩnh - thay vì tự động phân bổ chúng khi chạy. Tôi muốn trình biên dịch có kích thước tại thời gian biên dịch.
//** Simplified example of what I'd like to do **//
#define SIZE_LIST_1[5] = {2, 7, 23, 33, 12, 76} // I don't think this is valid syntax
#define SIZE_LIST_2[5] = {11, 65, 222, 112, 444}
#define MODE 4
#define S1 SIZE_LIST_1[MODE]
#define S2 SIZE_LIST_2[MODE]
int a[S1], b[S2];
'int SIZE_LIST_1 [5] = {2,7 ... 76};' –
Macro thay thế. – Jack
Tôi không hiểu ý bạn là gì [S1]. bạn đang cố làm gì ở đó? –