Если вы хотите убедиться, что ваш код переносим, всегда используйте -pedantic или -pedantic-errors.
Это обеспечит предупреждения / ошибки, когда ваш код отклоняется от соответствия стандартам.
Пока мы находимся на эту тему. Вы должны также включить все предупреждения. Есть веские причины, по которым компилятор предупреждает вас; при перемещении кода с одной платформы на другую эти предупреждения являются источником потенциальных ошибок, поскольку новое оборудование / ОС / компилятор может не работать так же, как ваша текущая.
Также используйте правильный исполняемый файл внешнего интерфейса GCC: g ++ будет обрабатывать файлы * .c как файлы C ++, если вы явно не укажете это. Так что если вы компилируете настоящий C, используйте gcc, а не g ++.
gcc -pedantic -Wall -Werror * .c
g ++ -pedantic -Wall -Werror * .cpp
Чтобы помочь с вашей конкретной проблемой, было бы неплохо увидеть строку 43. Хотя ошибка говорит о строке 44, много проблем вызвано тем, что в исходной строке возникла проблема, и проблема не была обнаружена анализатором, пока вы не доберетесь первая лексема на следующей строке.