Я действительно педантичен, когда дело доходит до предупреждений компилятора.Они помогают мне отладить множество проблем, поэтому я пытаюсь избавиться от всех них.
У меня есть 2 дочерних структуры, давайте назовем их ChildA
и ChildB
и базовая структура Base
,
// predefines.h
typedef struct sBase Base;
typedef struct sChildA ChildA;
typedef struct sChildB ChildB;
// base.h
typedef struct sBase {
// Base fields
} Base;
// child_a.h
typedef struct sChildA {
Base* base;
// other things
} ChildA;
// child_b.h
typedef struct sChildB {
Base* base;
// other things
} ChildB;
Все должно быть хорошо, а?И это работает, за исключением того, что генерирует так много предупреждений по всему моему коду, что других предупреждений, я просто не могу заметить их в моей IDE, потому что я просто вижу столько желтого .
У меня много функций, таких как:
void do_something(Base* base) {
// Code code code
}
do_something(instance_of_child_a); // Warning here
Есть ли способ порадовать компилятор, не отключая предупреждения этого типа?Большое спасибо.
edit: Вот предупреждение:
примечание: ожидается 'Base * {aka struct sBase *}', но аргумент имеет тип'ChildA * {aka struct sChildA }' void do_something (LitBase base);