Это зависит от того, что вы подразумеваете под "64-битной машиной". Существуют три категории в зависимости от семейства процессоров:
- Поддерживает некоторые 64-битные математические операции
- Может запускать программы в режиме X-64 (64-битная адресация)
- Имеет поддержку 64-битного ядра
Я предполагаю, что вы имеете в виду смысл "2", поскольку это наиболее актуально для кода приложения. Мне кажется, вам не нужно беспокоиться о значении «1», если только вам не нужно работать на старых компьютерах PowerPC Mac.
Вы специально упомянули, что делаете это в C-коде, что на самом деле не имеет большого смысла. Если вы компилируете код на языке C, вы можете просто создать «жирное» приложение с 32- и 64-разрядными вариантами и, следовательно, выполнить проверку во время компиляции с помощью:
#if _LP64
//64-bit stuff
#else
//32-bit stuff
#endif