разница между stdint.h и inttypes.ч
в чем разница между stdint.h и inttypes.ч?
Если ни один из них не используется, uint64_t не распознается, но с любым из них это определенный тип.
2 ответа:
см. статью Википедии для inttypes.з.
использовать stdint.h для минимального набора определений; используйте inttypes.h если вам также нужна портативная поддержка для них в printf, scanf и др.
stdint.h
включение этого файла является "минимальным требованием", если вы хотите работать с целыми типами C99 заданной ширины (т. е." int32_t"," uint16_t " и т. д.). Если вы включаете этот файл, вы получит определения этих типов, так что вы сможете использовать эти типы в объявлениях переменных и функций и операций с этими типами данных.
inttypes.h
Если вы включаете этот файл, вы будет все, что stdint.h обеспечивает (потому что inttypes.h включает в себя stdint.з), но ты также получит средства для выполнения printf и scanf (и "fprintf," fscanf", и так далее.) с этими типами в портативном способе. Например, вы получите макрос "PRIu16", чтобы вы могли распечатать целое число uint16_t следующим образом:
#include <stdio.h> #include <inttypes.h> int main (int argc, char *argv[]) { // Only requires stdint.h to compile: uint16_t myvar = 65535; // Requires inttypes.h to compile: printf("myvar=%" PRIu16 "\n", myvar); }