解决C语言程序:exe已停止工作,Process returned 255 (0xFF)

本文介绍了一个C语言程序中关于printf函数使用不当导致的程序崩溃问题。调试过程中发现printf函数内部参数错误,即使用了单引号而非双引号,修复该问题后程序恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调试C语言程序时,程序可以正常运行,但是触发输入输出操作时,程序崩溃,提示:exe已停止工作,Process returned 255 (0xFF)。如下图:
在这里插入图片描述首先检查了代码逻辑,并没有问题,编译程序时也没有警告,想到既然是输入输出导致的程序崩溃,于是再逐一检查输入输入函数部分,便发现了问题所在:
在这里插入图片描述
printf()函数中的参数应该为字符串和参量表:printf("格式化字符串", 参量表);
因此printf()函数括号中的引号须为双引号形式printf("***"),而写代码时眼疾手快没注意弄成了单引号printf('***'),最终导致问题的出现。
更正引号后,问题顺利解决。写代码还是得耐着性子,心急就可能导致不该出现的小bug。

### VSCode 中编译 C 语言程序时出现 `undefined reference to 'WinMain'` 错误的解决方案 当遇到 `undefined reference to 'WinMain'` 的错误提示以及 `collect2.exe: error: ld returned 1 exit status`,这通常意味着链接器无法找到入口函数 `WinMain` 或者项目配置存在问题。以下是详细的解决办法: #### 修改构建任务配置 为了确保所有源文件都被正确编译并链接,在 VSCode 中需要调整 `tasks.json` 文件来指定正确的编译命令和参数。 ```json { "version": "2.0.0", "tasks": [ { "label": "build all cpp files", "type": "shell", "command": "g++", "args": [ "-g", "${fileDirname}/*.cpp", // 改为编译整个目录下的 .cpp 文件 "-o", "${fileDirname}/output" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"], "detail": "Generated task from Build Active File." } ] } ``` 此更改使得 g++ 不仅会编译当前打开的文件,还会处理同一目录下其他所有的 `.cpp` 文件[^4]。 #### 更改入口点名称 如果确实是在编写 Windows GUI 应用,则应将主函数声明更改为如下形式以匹配 WinMain 函数签名: ```c #include <windows.h> int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) { MessageBox(NULL,L"Hello, world!",L"Greetings",MB_OK); return 0; } ``` 对于控制台应用程序而言,应该使用标准的 main() 函数作为起点而不是 WinMain(). 如果代码中包含了特定于图形界面的部分而实际上只需要简单的终端输出应用的话,那么应当移除这些部分并将 entry point 设置回普通的 main()[^5]. #### 配置 launch.json (调试设置) 另外还需要确认项目的调试配置是否正确无误。可以通过编辑`.vscode/launch.json` 来保证启动选项适合所开发的应用类型(比如 console app vs gui app): ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/output", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/path/to/gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build all cpp files", "internalConsoleOptions": "openOnSessionStart" } ] } ``` 通过上述措施可以有效避免由于未定义引用而导致的连接失败问题,并使程序能够顺利运行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值