Здравствуйте, VladD2, Вы писали:
N_>>Еще раз приведу пример:
N_>>int main()
N_>>{
N_>> free(ptr); // это вызов функции или определение переменной?
N_>>}
VD>Это вообще безконфликтый случай. Это никак не может быть определением переменной. Тут конфликта нет. А вот в приведении типов конфликт действительно есть, и без привлечения семантического анализа определить конкретный тип конструкции нельзя.
N_>>Для вызова функции и определения переменной используются разные синтаксические конструкции.
N_>>И в данном случае, это зависит от контекста: встретилось ли ранее typedef int free;
VD>В данном случае ничего повлиять уже не может. Приведи, плиз, пример где бы твоя конструкция была бы корректно распознана парсером как объявление переменной.
Я считаю, что с тобой уже обсуждать что-то бессмысленно. Мало того, что ты Си не знаешь, так еще и не удосужился проверить.
typedef int free;
int main()
{
free(ptr); /* обьявление переменной int ptr */
}