dzz: Dizzy の冬 (Default)
[personal profile] dzz
При переходе с C++ на чистый C приходится смотреть в оба.

В частности, если ты сделал typedef enum, создал функцию с параметром такого типа, а потом при её вызове подставил переменную типа int, то отряд не заметит потери бойца gcc -Wall проглотит это молчком, потому что первое - фактически int, а второе - int явный, чего тут разбираться-то? :)))

Если что, задача была отсекать на уровне компилятора использование в параметрах функций значений от другого enum-а.

Date: 2024-10-31 10:32 am (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner

gcc gcc lupus est. У нас сейчас актуальные версии gcc от 4.7.2 до 14.2.0, так там у каждой версии свои погремушки. В 14.2.0 точно что-то ужесточилось, и то что на всем остальном в худшем случае давало warning, компилироваться перестало. Может быть переход на 14.2.0 спасет смертельно раненного кота.


Не говоря уж о том, что кроме -Wall есть еще -Wextra (хотя там по-моему ничего про enum-ы дополнительного не включают)


Date: 2024-10-31 10:42 am (UTC)
From: [identity profile] dzz.livejournal.com

У меня gcc 9.4.0, -Wextra не помогает. И -strict, И -std=XX тоже все перепробовал :)

Проблема некритичная, но как-то привык к строгому контролю типов.

Date: 2024-10-31 11:51 am (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner

Портабельный ассемблер он такой ассемблер.


Хотя, конечно где-то после 10-й — 11-й версий изменилось очень много и продолжнает меняться.

Date: 2024-10-31 04:50 pm (UTC)
From: [identity profile] a-konst.livejournal.com

Вопреки названию, -Wall это точно не все предупреждения о конвертации типов, по крайней мере в последних версиях gcc.

Date: 2024-10-31 06:40 pm (UTC)
From: [identity profile] dzz.livejournal.com

-Wextra тоже не помогает.

December 2025

S M T W T F S
  12 3456
7 8 9 10 11 1213
14151617181920
21222324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 31st, 2025 01:55 pm
Powered by Dreamwidth Studios