2011-04-13 22 views
8

Estaba haciendo algunos ejercicios pequeños en C con un amigo, y seguí usando palabras clave de idiomas más nuevos (por ejemplo, bool, nuevo) por costumbre. Me tomó un tiempo darme cuenta de que ese era el problema porque VS los seguía resaltando como palabras clave, aunque no están en C.Cómo obtener C (no C++) resaltado de sintaxis en Visual Studio (2010)?

Me aseguré de que todos mis archivos fueran * .c y configuré las propiedades del proyecto para compilar como C. Sin embargo, el editor siempre agregó sintaxis highlightint para las palabras clave C++ además de las palabras clave C. ¿Hay alguna forma de decirle a Visual Studio que solo quiero C simple?

Usando VS2010 si es importante.

Respuesta

7

No puede. This is a known bug in Visual Studio. El mecanismo "Intellisense" que se utiliza para colorear la sintaxis en Visual Studio se basa en el compilador EDG C++ que compró Microsoft, ya que su compilador Visual C/C++ es poco adecuado para el análisis incremental necesario para manejar el análisis sobre la marcha de código incompleto Y el compilador EDG es solo C++.

Se puede ver un ejemplo de esto mediante la creación de un archivo foo.c que compila como C. A continuación, añadir al archivo de las siguientes líneas:

#ifdef __cplusplus 
#error C++ is what I am 
#else 
#error A bunch of C code! 
#endif 

Cuando se compila el programa que va a ver el mensaje de error "¡Un montón de código C!" Pero cuando miras la ventana del editor de Visual Studio, el lado C aparecerá atenuado y marcado como inactivo, ¡y solo el lado de C++ se coloreará! Esto se debe a que el colorante de sintaxis Intellisense, basado en el compilador EDG C++, cree que todo es C++.

0

Tenga en cuenta que C (C99 std) ha adoptado algunas características de C++, como los comentarios de estilo C++ (//) o el tipo de datos boolean (bool).

Cuestiones relacionadas