Всегда ли gcc в onlinegdb будет согласовываться с gcc в CentOS 7?

Я полагаю, вы имеете в виду что-то вроде:

's/[a-z]\+\([^a-z]\{0,1\}\)$/efgh\1/g' 

Полные команды sed + вывод:

$ echo "abcd," | sed 's/[a-z]\+\([^a-z]\{0,1\}\)$/efgh\1/g'
efgh,

$ echo "abcd" | sed 's/[a-z]\+\([^a-z]\{0,1\}\)$/efgh\1/g'
efgh
0
31.01.2020, 16:35
2 ответа

Согласен с @fox, но, кроме того, существует поведение, зависящее от платформы, и неопределенное поведение (GCC пытался определить их там, где это возможно ). Они могут различаться в зависимости от платформы, ОС и аппаратного обеспечения. Однако Gcc постарается сохранить согласованность (там, где это возможно ).

Примером различий может быть размер типов данных long intи size_t, который может быть 32-битным или 64-битным. (в других компиляторах они также могут быть 8-битными или 16-битными ).

1
28.04.2021, 23:25

Упомянутый вами сайт в настоящее время использует GCC 5, в то время как CentOS, кажется, использует по крайней мере GCC 7. Но именно поэтому у нас есть стандарты. Действительный код C99 будет прекрасно компилироваться на любой платформе.Он будет работать так же (, хотя, возможно, быстрее или медленнее ), если вы не делаете что-то вроде использования специфичных для платформы -библиотек или "неправильной" сериализации структур, не заботясь о порядке следования байтов (, если хост-архитектуры различаются)

tl;dr :для вещей, которые вы будете делать в школе, маловероятно, что различия будут значимыми

0
28.04.2021, 23:25

Теги

Похожие вопросы