Простой: у вас есть структура, а не typedef
структура.
Вы можете использовать его следующим образом:
struct product {
int weight;
float price;
};
struct product apple;
void func() {
apple.weight = 12;
}
Однако, если вы используете typedef, вы можете дать своему типу данных фактическое имя:
typedef struct { .. } product;
product apple;