Intellisense в Visual Studio 2010 интерпретирует код C как C++ и отмечает ошибки, где они не существуют, как в:
struct my_struct *s = malloc(sizeof *s);
который является допустимым C, но не допустимым C++.
Там какой-либо путь состоит в том, чтобы зафиксировать это?
Это известная ошибка, по крайней мере, с MSVC 2005. К сожалению, в 2010 году она стала более серьезной проблемой, поскольку теперь VC использует Intellisense для отметки ошибок.
См. это обсуждение на форумах MSDN для получения дополнительной информации. Следующее заявление обескураживает, но я настоятельно рекомендую вам добавить свой голос в беседу в надежде, что когда-нибудь они смогут решить эту проблему.
Я просто отслеживаю и сообщаю вам, что мы не будем исправлять эту ошибку в следующем выпуске / обновлении VS.
Если эта ошибка серьезно влияет на вашу повседневную продуктивность, вы можете открыть / активировать эту ошибку, повторно подключившись.
Обратите внимание, что вы можете отключить отчет об ошибках Intellisense в Инструменты → Параметры ... → Текстовый редактор → C / C ++ → Дополнительно → Intellisense → Отключить отчет об ошибках → True. Конечно, это действительно неприятно, если вы используете смешанное решение или просто хотите включить заголовок extern «C»
, который вызывает ошибки Intellisense.