0

多くの変数名を使用する古い c プロジェクトがあるため、c++などnewでコンパイルできません。this

したがって、コンパイルできるかどうかを確認するために、次のようにしました。

  1. 新しい空の C++ プロジェクト
  2. 新しいクラスを追加し、ファイルの名前を変更しました.c(以下のコード)
  3. ヘッダーファイルを空にしました
  4. プロジェクト プロパティ -> C/C++ -> 詳細設定 -> Compile As = C コードとしてコンパイル (/TC)

Test.c:

#include "Test.h"

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

しかし、それはまだ不平を言っているnewので、純粋なCとしてコンパイルしていません。何が欠けていますか?

編集

などは の予約名でnewあることは承知しています。しかし、私はこれを次のようにコンパイルしようとしています。また、大規模なプロジェクトで名前を変更することを避けようとしています。としてコンパイルするように指示した場合、なぜこれらの予約名を強制するのですか?thisc++cc

4

3 に答える 3

1

newのようにメモリを割り当てるための予約済み識別子です。

int* i = new int(123);

使えません。次のように、変数の別の名前に切り替えます

#include "Test.h"

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

C++ の予約語は、便利なようにいくつかのグループに分けることができます。最初のグループには、C プログラミング言語にも存在し、C++ に引き継がれたものを入れました。これらのうち32個があり、ここにそれらがあります:

auto   const     double  float  int       short   struct   unsigned
break  continue  else    for    long      signed  switch   void
case   default   enum    goto   register  sizeof  typedef  volatile
char   do        extern  if     return    static  union    while

C にはなかった予約語が 30 個あり、C++ にとっては新しいものです。

asm         dynamic_cast  namespace  reinterpret_cast  try
bool        explicit      new        static_cast       typeid
catch       false         operator   template          typename
class       friend        private    this              using
const_cast  inline        public     throw             virtual
delete      mutable       protected  true              wchar_t

ここから撮影。

于 2013-04-02T10:07:27.020 に答える