Single `#include` inside of array causes VSCode to report the "expected an expression" error
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- c, typescript
- Área
- devtools
Línea de trabajo
Comienza con el reproductor main.c y file.txt usando la configuración indicada de VS Code, la extensión C/C++ y cl.exe; después, compara el comportamiento del compilador con el diagnóstico de IntelliSense. Se considera terminado cuando el array expandido mediante include se acepta sin el error "expected an expression" y conserva los tres elementos previstos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Environment
- OS and Version: Windows 11 24H2 (Build 26100.4349)
- VS Code Version: 1.101.2
- C/C++ Extension Version: 1.26.3
Bug Summary and Steps to Reproduce
Bug Summary:
I'm currently working on a project that combines an X macro with an #include statement to populate an array from a generated file, like this:
// main.c
#include <stdio.h>
#define X(n) n
int array[] = {
#include "file.txt"
// 0
}; // "expected an expression"
#undef X
int main() {
for (int i = 0; i < 3; i++)
{
printf("%i\n", array[i]); // Output is "123", as expected.
}
return 0;
}
// file.txt
X(1),
X(2),
X(3),
It feels hackish, but it compiles and runs. However, VSCode doesn't seem to like the fact that array has nothing but #include "file.txt" inside. Uncommenting 0 makes the error go away, although, this obviously makes array to have 4 items instead of intended 3.
Steps to reproduce:
- Create
main.candfile.txtand insert code above; - Open
main.cin VSCode; - Notice error on line 7.
Expected behavior:
VSCode should understand that #include "file.txt" with expanded macros provide an expected expression.
Configuration and Logs
-------- Diagnostics - 6/30/2025, 1:54:07 AM
Version: 1.26.3
Current Configuration:
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.26100.0",
"compilerPath": "cl.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-msvc-x64",
"compilerPathInCppPropertiesJson": "cl.exe",
"intelliSenseModeIsExplicit": false,
"cStandardIsExplicit": false,
"cppStandardIsExplicit": false,
"mergeConfigurations": false,
"recursiveIncludes": {},
"recursiveIncludesReduceIsExplicit": false,
"recursiveIncludesPriorityIsExplicit": false,
"recursiveIncludesOrderIsExplicit": false,
"compilerPathIsExplicit": false,
"browse": {
"limitSymbolsToIncludedHeaders": true
}
}
Modified Settings:
{
"C_Cpp.autocompleteAddParentheses": true,
"C_Cpp.formatting": "clangFormat",
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4, AlignAfterOpenBracket: BlockIndent, BinPackArguments: false, PenaltyBreakAssignment: 64 }",
"C_Cpp.codeAnalysis.clangTidy.enabled": true
}
Additional Tracked Settings:
{
"editorTabSize": 4,
"editorInsertSpaces": true,
"editorAutoClosingBrackets": "languageDefined",
"filesEncoding": "utf8",
"filesAssociations": {},
"filesExclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/.DS_Store": true,
"**/Thumbs.db": true
},
"filesAutoSaveAfterDelay": false,
"editorInlayHintsEnabled": true,
"editorParameterHintsEnabled": true,
"searchExclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/*.code-search": true
},
"workbenchSettingsEditor": "ui"
}
cpptools version (native): 1.26.3.0
Current database path: C:\USERS\OPERATOR\APPDATA\LOCAL\TEMP\{4514E1A3-0F0D-4E39-A2F4-4D7081E65254}\.BROWSE.VC.DB
Translation Unit Mappings:
[ C:\Users\operator\Desktop\repos\test\main.c - source TU]:
C:\Users\operator\Desktop\repos\test\file.txt
Translation Unit Configurations:
[ C:\Users\operator\Desktop\repos\test\main.c ]
Process ID: 11608
Memory Usage: 63 MB
Compiler Path: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\bin\Hostx64\x64\cl.exe
Include paths:
include: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\include
include: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include
include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt
include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\um
include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared
include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\winrt
include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\cppwinrt
include: C:\Program Files (x86)\Windows Kits\NETFXSDK\4.7.2\Include\um
system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\um
system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\ucrt
system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\shared
system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\winrt
system include: C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0\cppwinrt
Defines:
_DEBUG
UNICODE
_UNICODE
Standard Version: ms_c17
IntelliSense Mode: windows-msvc-x64
Other Flags:
--using_directory
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\lib\x86
--using_directory
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.43.34808\lib\x86\store\references
--using_directory
C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.26100.0
--using_directory
C:\Program Files (x86)\Windows Kits\10\References\10.0.26100.0
--using_directory
C:\Windows\Microsoft.NET\Framework\v4.0.30319
Total Memory Usage: 63 MB
------- Workspace parsing diagnostics -------
Number of files discovered (not excluded): 5082
Number of files parsed: 238
Other Extensions
No response
Additional context
No response
- Lenguaje dominante
- TypeScript
- Estrellas
- 6.2k
- Forks
- 1.7k
- Merge medio
- 14 h 46 min
- PR fusionados (30 d)
- 61
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/vscode-cpptools
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
microsoft/vscode-cpptools#14787 ·
-
[Bug] cpptools fails to start on Ubuntu ARM64 due to missing execute permissions on shared libraries Abiertobug fixed Language Service regression
microsoft/vscode-cpptools#14779 · 1 asignado ·
-
Language Service more info needed
microsoft/vscode-cpptools#14778 · 1 comentario · 1 asignado ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 64/100
microsoft/vscode-cpptools#14769 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
microsoft/vscode-cpptools#14768 · 1 comentario ·
Todos los issues de microsoft/vscode-cpptools
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
area:tools bug good first issue help wanted priority:P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
TaewoooPark/Motifcode#14 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
newrelic-experimental/preflight#793 · 1 comentario ·
-
bug 🐞
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
[Bounty proposal] fix(web): memory insights count an evening memory on the next day ($25 proposed) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
BasedHardware/omi#15320 ·