Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
257 views
in Technique[技术] by (71.8m points)

Can't compile C in visual studio 2012

I have an older c project that uses many variable names that cause it to not compile in c++, new, this etc.

So to try and see if I can get it compiling I have done this:

  1. New empty C++ project
  2. Added a new class, renamed the file .c (code below)
  3. Emptied the header file
  4. Project properties->C/C++->Advanced->Compile As = Compile as C Code (/TC)

Test.c:

#include "Test.h"

int test()
{
    int new = 123;
    return new;
}

But it still complains about new, so it's not compiling it as pure C. What am I missing?

EDIT

I'm aware that new, this etc are reserved names in c++. But I am trying to compile this as c And I'm trying to avoid going though renaming in a massive project. If I tell it to compile as c, why does it still enforce these reserved names?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

See the answer here:

https://stackoverflow.com/a/5770919/1191089

There are some additional flags to disable Microsoft extensions which might be applicable.

I know it doesn't answer the question, but you might find that it's less effort to change your variable names, a search and replace on variables called "this" and "new" will only take 5 minutes.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...