В следующем коде представлены функции test
и test2
эквивалентные?
typedef int rofl;
void test(void) {
rofl * rofl = malloc(sizeof(rofl)); // Is the final rofl here the TYPE?
}
void test2(void) {
rofl * rofl = malloc(sizeof *rofl); // Is the final rofl here the VARIABLE?
}
Другими словами:
- Правильно ли
rofl
вsizeof(rofl)
выбрать типrofl
из-за круглых скобок? - Правильно ли
rofl
вsizeof *rofl
выбрать переменнуюrofl
из-за недостатка круглых скобок?
Примечание.. Это глупый пример, но на практике может быть фактически, что у вас есть имя типа, такое же, как имя переменной. Отсюда вопрос.