概要使用して、Cプレーン:私は趣味アプリで働いている新しいキーワード
を。自分のプログラムが「プレーンC」に固執できるようにしたい。
、いくつかの理由から、私は「平野C」をサポートC++コンパイラ、および関連するプログラミング的環境プログラムを、使用する必要があります。同じ理由から、私はコンパイラーに変更することはできません。また、意図せずにコード化されたC++機能がいくつかあります。
たとえば、私は名前空間やクラスを使用していません。私の現在のプログラミングの仕事は、 "plain c"や "C++"ではないし、しばらく使っていないので、どのようなものが "plain c"なのか忘れているかもしれない。
インターネットで「Plain C」の例を閲覧しました。私は、多くの他の開発者が混在した "plain c" & "C++"の例(それらのうちのいくつかは意図せず)を投稿していることがわかりました。
私はいくつかの動的に割り当てられた構造を使用しています。私は "malloc"を使用していますが、むしろ代わりに "new"を使用します。私はいくつかの新しい標準& "plain c"のコンパイラバージョンは "新しい"を許可したと思ったが、私は間違っているようだ。
"new"が "C++"機能であると思われます。& "plain c"だけを作成したい場合は、 "malloc"を使用してください。私は、クロスプラットフォーム非GUIライブラリ/ツールで働いているので、
私は「プレーンC」に固執したい理由は、それがあります。
私の現在のプラットフォームは "Windowze"、私の開発Enviroments、あるある:
(1)コードブロック(MinGWの)
(2)流血DevCPP
(3)ボーランドCBuilderは6
が、私の目標は、Linuxに移行することで、あまりにも、そしておそらく他のプラットフォームs、およびその他の(コマンドラインの)コンパイラです。
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
struct MyData_T
{
int MyInt;
char MyName[512];
char *MyCharPtr;
};
typedef
struct MyData_T *MyData_P;
MyData_P newData(char* AName)
{
MyData_P Result = null;
Result = malloc(sizeof(MyData_T));
strcpy(Result->MyName, AName, strlen(AName));
// do other stuff with fields
return Result;
} // MyData_P newData(...)
int main(...)
{
int ErrorCode = 0;
MyData_P MyDataVar = newData("John Doe");
// do more stuff with "MyDataVar";
free(MyDataVar);
return ErrorCode;
} // int main(...)
質問私はx86用のコンパイラ(windowze、Linux)の作業 "のみCプレーン" を取得することができます
:
クイック例をテストされていませんか?
私は "malloc"、 "calloc"などを使用するべきでしょうか?
私は、 "C++" に変更することを検討してください& "新しい"、代わりに?
「プレーンC」アプリケーションで「新しい」&「削除」を使用することは有効ですか?
他の提案はありますか?
ありがとう。
免責 注:私はすでにStackOverflowの中で、同じ質問を投稿しないようにしようと数時間を過ごした、しかし、以前の回答のどれも私には明確なようではありません。
C++は「新」以上の*たくさんの*です。 C言語を書いたければ、C++コンパイラではなくCコンパイラを使用したいと思います。 Windows用のCコンパイラが必要な場合は、MinGW – Flexo
を参照してください。ほとんどのC++コンパイラには、ソースがC++ではなくC言語であると解釈されるコマンドラインフラグがあります。 。私は、適切なモードに設定されていると、C標準を厳密に実施するC/C++コンパイラがあるという事実を知っています。あなたはちょうど1つを見つけて、正しいモードを見つけなければなりません。 –
ほとんどのC++コンパイラには "plain C"としてコンパイルするオプションがあります。 Visual StudioとGCCは、少なくとも私は他の人も同様にやっていると思います。ファイルの名前を '.c'に変更し、ほとんどが自動的に「プレーンC」としてコンパイルされます。 –