我想在编译时声明我的 C 程序中的所有变量,例如:
char cache[CACHE_SIZE];
char udp_ring[MAX_UDP_PACKET_SIZE*MAX_REQUESTS];
int num_packets;
char error_codes[NUM_ERRORS][MAX_ERROR_STRING]= {
{"Unknown user\n"},
{"Wrong password\n"},
....
};
问题是,当 C 程序中的变量进入 BSS 或 DATA 段时,它们的大小是否有任何限制?例如,如果我声明 8GB RAM 的 CACHE_SIZE,它会起作用吗?32位或64位有什么区别吗?我计划在 Linux 上运行该程序,并且我的 RLIMIT_DATA 配置没有任何限制。