VC6中存在的BUG_4_块变量重复定义问题

110 阅读1分钟

问题

#define SHOW_MENU(s) printf(s);printf("\r\n");system("pause");
void main()
{

	for (int i = 0; i < 5; i++)
  {
		SHOW_MENU("*****************");
  }

	for (int i = 0; i < 5; i++)
	{
			SHOW_MENU("*****************");
	}

}

此时按照语法,i本应该是一个块变量,所以按理说上述写法并不会造成i的重复定义

但在VC6中会发生重复定义的error

QQ截图20220521104617.png

解决

  • 2019中已修复
  • 若程序原先在高版本中开发,想要兼容低版本,又不想大改代码中的变量名时 就可以使用 兼容性宏