假设我有一printf()行长字符串:
printf( "line 1\n"
"line 2\n"
"line 3\n"
"line 4\n"
"line 5\n"
"line 6\n"
"line 7\n"
"line 8\n"
"line 9\n.. etc");
Run Code Online (Sandbox Code Playgroud)
与printf()每条线路的多个线路相比,这种风格产生的成本是多少?
如果字符串太长,是否会出现堆栈溢出?
我有两个名为TestFunc和TestFunc2的空函数,我将它们的地址分配给两个变量.
void TestFunc()
{
}
__declspec(naked) void TestFunc2()
{
}
int main()
{
DWORD* test = (DWORD*)TestFunc;
DWORD* test2 = (DWORD*)TestFunc2;
printf("TestFunc is %p at test is %p\n", TestFunc, test);
printf("TestFunc2 is %p at test2 is %p\n", TestFunc2, test2);
getchar();
}
Run Code Online (Sandbox Code Playgroud)
赋值后,两个变量的值实际上与它们的赋值不同.
但是,在printf语句中,输出显示它们是相同的.任何想法为什么会发生这种情况?