C++の移植不可能な特性について簡単に述べる
1264 ワード
最下位のプログラミングをサポートするために、C++はいくつかの移植不可能な特性を定義しています(機械のため、移植不可能な特性を含むコードを1台の機械から別の機械に移行する場合、プログラムコードを書き直す必要があります).
1、ビットドメイン:一つのプログラムが他のプログラム或いはハードウェア設備にバイナリデータを伝達する必要がある場合、通常は所定のドメインを使用する.
ビットドメインのタイプは、整数または列挙タイプでなければなりません.通常、ビットドメインは符号なしタイプに設定することが望ましいです.クラスは、静的でないデータ・メンバーをビット・ドメインとして定義できます.
2、volatile限定子:オブジェクトの値がプログラムの制御または検出以外に変更される可能性がある場合、オブジェクトはvolatileと宣言され、キーワード「volatile」はコンパイラにこのようなオブジェクトを最適化すべきではないことを教える.volatileの使い方はconstと似ており、タイプの追加修飾に役立ちます.
3、extern"C"--リンク指示:C++は"extern"C"--リンク指示"を使用して任意の非C++関数で使用される言語を指摘する(最も一般的なのはC言語で作成された関数を呼び出す).
リンク指示の第1の形式:キーワードexternを含み、後ろに文字列の字面定数があります.これは、extern「C」、extern「Ada」、extern「FORTRAN」など、関数を記述するために使用される言語、および「一般的な」関数の音明を指摘します.
単一リンクの指示:
複合リンクの指示:
1、ビットドメイン:一つのプログラムが他のプログラム或いはハードウェア設備にバイナリデータを伝達する必要がある場合、通常は所定のドメインを使用する.
ビットドメインのタイプは、整数または列挙タイプでなければなりません.通常、ビットドメインは符号なしタイプに設定することが望ましいです.クラスは、静的でないデータ・メンバーをビット・ドメインとして定義できます.
typedef unsigned int Bit;
class File
{
Bit mode : 1; //mode
Bit modified : 2; //modified
}
2、volatile限定子:オブジェクトの値がプログラムの制御または検出以外に変更される可能性がある場合、オブジェクトはvolatileと宣言され、キーワード「volatile」はコンパイラにこのようなオブジェクトを最適化すべきではないことを教える.volatileの使い方はconstと似ており、タイプの追加修飾に役立ちます.
volatile int display_register;// int
3、extern"C"--リンク指示:C++は"extern"C"--リンク指示"を使用して任意の非C++関数で使用される言語を指摘する(最も一般的なのはC言語で作成された関数を呼び出す).
リンク指示の第1の形式:キーワードexternを含み、後ろに文字列の字面定数があります.これは、extern「C」、extern「Ada」、extern「FORTRAN」など、関数を記述するために使用される言語、および「一般的な」関数の音明を指摘します.
単一リンクの指示:
extern "C" size_t strlen(const char *);// 。 。
複合リンクの指示:
extern ”C“
{
#include<string.h> // #include ” “ , 。
}