#include
#include int main(void) { int8_t int8; int16_t int16; int32_t int32; int64_t int64; uint8_t uint8; uint16_t uint16; uint32_t uint32; uint64_t uint64; scanf("%"SCNd8"%"SCNd16"%"SCNd32"%"SCNd64"%"SCNu8"%"SCNu16"%"SCNu32"%"SCNu64, &int8, &int16, &int32, &int64, &uint8, &uint16, &uint32, &uint64); printf("%"PRId8"\n%"PRId16"\n%"PRId32"\n%"PRId64"\n%"PRIu8"\n%"PRIu16"\n%"PRIu32"\n%"PRIu64"\n", int8, int16, int32, int64, uint8, uint16, uint32, uint64); return 0; } Я не могу скомпилировать этот код с использованием последней версии gcc + MinGW + Netbeans + Windows. Netbeans сообщает, что «невозможно разрешить идентификаторы SCNd8 и SCNu8». Я не могу найти никаких ссылок на SCNd8 и SCNu8 на странице руководства gcc, хотя http://linux.die.net/include/inttypes.h определяет их. Я не получаю синтаксической ошибки при использовании PRId8 или PRIu8.
MinGW inttypes.h (без SCNd8 и SCNu8) (пример кода)
#define PRIXFAST64 "I64X" #define PRIXMAX "I64X" #define PRIXPTR "X" /* * fscanf macros for signed int types * NOTE: if 32-bit int is used for int_fast8_t and int_fast16_t * (see stdint.h, 7.18.1.3), FAST8 and FAST16 should have * no length identifiers */ #define SCNd16 "hd" #define SCNd32 "d" #define SCNd64 "I64d" #define SCNdLEAST16 "hd" #define SCNdLEAST32 "d" #define SCNdLEAST64 "I64d" #define SCNdFAST16 "hd"