Борьба с майкрософт, или как писать кросс-платформенный код под linux и windows
В общем дело обстоит так, я пишу библиотеку кросс-платформенную под пока 2 платформы.
Пишу я код, и как помню, что в заголовочном файле stddef.h должен быть определен тип size_t. Я включаю этот заголовочный файл, на что мне компилятор от майкрософт говорит, что такого типа там нет. Ну я же не дурак, и помню что еще он определен в файле stdint.h, я подключаю его, и вроде бы все хорошо.
Клонирую свой репозиторий написанный под Windows, пытаюсь его собрать при помощи GCC, на что получаю моментальную ошибку о том что тип size_t определен в заголовочном файле stddef.h и предлагает его подключить, тут то у меня и пригорело от того, что либо майкрософт забивают на си стандарт или делают его реализацию так, как им захочется.
Хочу узнать как с этим бороться или придется с этим жить и подстраивать проекты так, чтобы на одной платформе были одни заголовки включены, а на других другие?