我有这个非常简单的C代码,应该创建一个.txt文件并将其写入。
#include <stdio.h>
int main() {
FILE* f;
if ((f = fopen("asdTEST.txt", "w")) == NULL) {
printf("Failed to open.\n");
return 1;
}
else {
fprintf(f, "Hello\n");
fclose(f);
printf("Success!\n");
}
return 0;
}
我的问题是,当我在Visual Studio 2019中编译它时,它没有执行。奇怪的是-它确实在一个项目中起作用,但是如果我创建一个新项目并将其复制粘贴到该代码中,它将无法创建文件。但是,它将以代码0结尾,就好像成功一样。如果我以管理员身份运行编译的二进制文件,则可以正常工作。
(在一个成功的项目中,它在源代码.c所在的目录中创建了.txt文件,这就是我想要执行的操作)
我的问题是-为什么相同的代码在一个VS项目中起作用而在其他(新)项目中却不起作用?我该怎么做才能解决此问题?
谢谢!
函数调用的方式有多种,在函数调用中还应该注意的一个问题是求值顺序。所谓求值顺序是指对实参列表中各个参数是自左向右使用,还是自右向左使用。对此,各系统的规定不一定相同。
__cdecl调用规则就是C调用规则。按从右至左的顺序压参数入栈,由调用者把参数弹出栈。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。