代码盗圣 2020-09-09 11:37 采纳率: 66.7%
浏览 266
已采纳

For 循环中的局部变量为什么可以拿出来用?

查阅HexEditor插件的时候发现如下代码,括号内定义的局部变量为什么可以拿出来用?

    /* i 是局部变量 */
    for (UINT i = 0; i < length; i++)
    {
    }

    for (i = 1; i <= max; i++)

有时候又不可以,会报错,是怎样配置VS使得VS支持或不支持以上“特性”?

补充图片:c++设置

图片说明

/GS /analyze- /W4 /FAu /Zc:wchar_t /I"../../src" /I"../../src/HelpDlg" /I"../../src/MISC" /I"../../src/OptionDlg" /I"../../src/UserDlg" /I"../../../Common/Ccpp" /I"../../../NativeLang/src" /Od /Fd"Debug\vc142.pdb" /Zc:inline /fp:precise /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "HEXEDITOR_EXPORTS" /D "_WINDLL" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope- /RTC1 /Gd /Oy- /MDd /FC /Fa"Debug\" /EHsc /nologo /Fo"Debug\" /Fp"Debug\HexEditor.pch" /diagnostics:column

link设置

图片说明

/OUT:"D:\Downloads\npp.7.8.9.bin\plugins\HexEditor/HexEditor.dll" /MANIFEST /NXCOMPAT /PDB:"Debug\HexEditor.pdb" /DYNAMICBASE "shlwapi.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /IMPLIB:"Debug\HexEditor.lib" /DEBUG /DLL /MACHINE:X86 /SAFESEH /INCREMENTAL /PGD:"Debug\HexEditor.pgd" /SUBSYSTEM:WINDOWS /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\HexEditor.dll.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-09-09 12:08
    关注

    不同的编译器不同。早期的编译器,会把UINT i放在全局作用域上。现在的编译器不会。
    在VC++ 6.0时代
    for (int i = ...)
    {
    ...
    }
    for (int i = ...)
    {
    ...
    }
    这代码是不能编译的,会说i重复定义。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog