разница между stdint.h и inttypes.ч
в чем разница между stdint.h и inttypes.h?
Если ни один из них не используется, uint64_t не распознается, но с любым из них это определенный тип.
2 ответов
см. статью Википедии для inttypes.h.
использовать 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);
}