vc如何使用纯C语言,有些代码我在LCC下就通过,在VC下即使扩展名是.C还是不能通过,是不是那里可以设定为纯C的望知道的告知一下,谢谢

解决方案 »

  1.   

    项目属性页->C/C++->高级->编译为->编译为C代码 /TC
      

  2.   

    不就是创建一个WIN32 CONSOLE APPLICATION项目吗?
      

  3.   

    不是这样的,因为我写了一段纯C的代码在这个环境中不能执行。
    而在纯C环境中就可以,也是WIN下的32位纯C IDE,因为那个IDE不好,我想换成VC的,
      

  4.   

    楼主,绝对可行的。你新建一个空白的WIN32 CONSOLE APPLICATION项目,然后将你的C文件添加进工程中,编译就搞定了,我们都是这样测试C程序的。绝对没有问题。
      

  5.   

    在VC中开发的控制台程序不能在纯DOS下运行,因为在VC下即使是控制台程序都是32位的。只能在TC下开发有一个IDE叫WINTC在相对TC的介面来说要好用一点。
      

  6.   

    char *s="windows";
    *s='s';
    用LCC就可以通过,而用VC就只能编译,不能执行。代码没错,
      

  7.   

    项目 -> 属性 -> C/C++ -> 高级 -> 编译为C代码C++ 代码文件的扩展名一般是 CPPC 代码文件的扩展名一般是 C
      

  8.   

    LCC能执行,LCC是啥?是托管程序吗?LCC太强了
      

  9.   

    LCC是一个纯C的IDE不支持C++,编译速度和DELPHI一样快,超快。
      

  10.   

    在CPP文件中,写C代码,一定能通过.如果不通过,那编译器就出鬼了.
      

  11.   

    楼主的程序是典型的错误
    char *s="windows";//表示定义s为一不可变更的常量串,所以下一句会错误
    *s='s'; 可改为 
    char s[]="windows";
    *s='s';
      

  12.   

    为什么CHAR *S就是常量串,而CHAR S[]就不是常量串呢,就可改呢
      

  13.   


    编译器编译并且链接生成EXE后,char* s = "windows"中的"windows"字符串所在的区段没有可写权限,所以*s = 's'就会出错,而你说的LCC执行没有出错,只可能是这个编译器编译后,"windows"字符串所在的区段拥有可写权限。这个取决于编译器的行为,而不是语言的行为。
    至于为什么char s[] = "windows"这种不会出错,是因为s这时候是一个数组,他会把字符串"windows"拷贝到数组里面,以后访问s的时候,它就不是在访问那个没有可写权限的区段了。
    至于这个区段的权限,你也可以使用LordPE之类的PE编辑工具进行修改,这样VC编译出来的Exe执行也不会出错,不过这不是一个好方法,比如这段代码:char* s = "windows";
    *s = 's';
    printf("%s\r\n","windows");假设运行没有出错,那么输出结果也不是windows,而是sindows,因为两个"windows"所在的内存地址相同,*s = 's'修改了前一个"windows"的内容,那么后一个也跟着变了,这就是为什么那个区段不给可写权限的原因。
      

  14.   

    哦,原来是这样吗?还是w_anthony说的有道理,谢谢你,我再看看。