我正在尝试练习结构,从我班上的视频开始,我唯一的区别是他正在使用旧版本的Visual Studio,而当我尝试进入代码时,我发现找不到chkstk.asm的错误源,我不知道如何获取和谷歌搜索没有给我带来任何好处。这是到目前为止我能提供的任何帮助的代码。老实说,Visual Studio给我带来了许多未知的新问题,让我想回到以前使用的简单文本编辑器。
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
typedef struct{
char name[40];
short int number;
double wholesale;
double retail;
short int onHand;
}PRODUCT;
void fillInProducts(PRODUCT[], int* pSize);
void fillInProducts(PRODUCT inventory[], int *pSize){
strcpy_s(inventory[*pSize].name, 40,"Handsaw");
inventory[*pSize].number = 3456;
inventory[*pSize].onHand = 12;
inventory[*pSize].wholesale = 12.34;
inventory[*pSize].retail = 23.99;
(*pSize)++;
}
main(){
int effectiveSize=0;
PRODUCT hammer = { "Hammer", 1234, 5.50, 8.99, 4 };
PRODUCT inventory[500];
fillInProducts(inventory, &effectiveSize);
system("pause");
}
最佳答案
这是编译器运行时支持的一部分。是否使用它取决于您使用哪个VS版本。编译器将在具有大堆栈帧的函数开始时对chkstk
进行堆栈检查调用。这里有更多详细信息:http://www.codeguru.com/cpp/v-s/debug/article.php/c19241/Adventures-with-chkstk.htm
由于main
的数组很大,因此PRODUCT
函数的堆栈框架非常大。这就是堆栈检查调用的来源。为了您的目的,您可以忽略它。您对调试运行时堆栈检查代码不感兴趣。只需跨过它并调试代码即可。
我必须对您的main
函数表示怀疑。它应该是int main(void)
。
关于c - 找不到源chkstk.asm,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29138691/