对C来说是新手,但是当我运行这个时出现以下错误:程序中的'st''222'
unsigned long *new_intel_stack(unsigned long *sp, lwpfun func, void *arg)
{
unsigned long *ebp;
push(sp,arg); /* argument */
push(sp,lwp_exit); /* for lwp return purposes */
push(sp,func); /* function's return address */
push(sp,0x1abcdef1); /* bogus "saved" base pointer */
ebp=sp; /* remember sp from this point for later */
push(sp,0x6c6f7453); /* push initial eax, ebx, ecx, edx, esi and edi */
push(sp,0x66206e65);
push(sp,0x206d6f72);
push(sp,0x746e6957);
push(sp,0x32207265);
push(sp,0x21363030);
push(sp,ebp); /* push initial edp */
return sp;
}
答案 0 :(得分:3)
该错误表示源文件中某处存在杂散的非ASCII字符。你在这里粘贴的很好。您可能需要在编辑器中使用“show whitespace”选项,或者在十六进制编辑器中查看该文件以查找杂散字节并将其删除。
也可能是你正在对你的对象做一些有趣的事情,编译器认为它们是源文件 - 你用什么命令来构建应用程序?
答案 1 :(得分:3)
此类错误的最常见原因是在Microsoft Word等环境中编写代码,该代码可自动更新以添加花哨的引号和花式撇号,然后将文件复制粘贴到源文件中。在十六进制编辑器(例如Frhed)中打开您的程序,并查找不在00-7F范围内的任何字节值。您也可以在命令行中调用输入和输出来调用编译器。