Вот 64-разрядная программа:
#include <stdio.h>
int main(void)
{
puts("Hello world!");
return 0;
}
Эта программа также безопасна как 32-битной программе, а также безопасны, как 16-бит программа. В программе не обязательно какая-либо разница в зависимости от количества бит, скомпилированных для нее.
Вот альтернативная программа:
#include <limits.h>
#include <stdio.h>
int main(void)
{
printf("%ld\n", LONG_MAX);
return 0;
}
Это будет производить различные ответы на 32-битные системы и 64-разрядные системы Unix, но 16-битные системы и 64-битные системы Windows, будут производить то же самое как 32-битные системы.
Обратите внимание, что обе эти программы имеют одинаковый исходный код и используют одни и те же заголовки независимо от того, скомпилированы ли они для 32-разрядных или 64-разрядных (или 16-разрядных или 8-разрядных на Grzegorz Szpetkowskicomment). Одна из программ имеет различное поведение в зависимости от платформы (компилятора) и скомпилирована ли она для 32-битного или 64-битного режима; другой производит независимо тот же результат. Очевидно, что значение LONG_MAX
, полученное из заголовка, может быть различным в зависимости от режима компиляции.
Какую программу вы пишете? –
ключевым отличием является размер (в байтах) (и, следовательно, максимальные значения) для числовых переменных. – user3629249