このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
共有ラ▪▪ブラリのサポ▪▪トの制限
MATLABにおけるcラブラリルチンのサポト
MATLAB®。複数の言語およびプラットフォームでの使用を前提に設計された製品仕様のライブラリであれば,ほぼすべて使用できます。詳細にいては,共有ラ▪▪ブラリのc関数の呼び出しを参照してください。
多くの非商用ライブラリや,c++からしかテストされていないライブラリは,インターフェイスが使用できなかったり,変更やインターフェイス層を必要とするものであったりします。この場合は墨西哥ファ苹果苹果ルを使用することをお勧めします。
c++ラaapl . exeブラリの読み込み
共有ライブラリインターフェイスはc++クラスやオーバーロードされた関数要素をサポートしていません。Matlab c++程序:ンタ,フェ。詳細にいては,Matlabのc++ラescブラリを参照してください。
関数printf
の使用の制限
Matlabでは,cの関数printf
の出力はコマンドウィンドウに表示されません。
ビットフィ,ルド
int
型または同等の型を使用して,ビットフィ,ルド宣言を変更できます。たとえば,ライブラリのヘッダー ファイルで次のように宣言されているとします。
int myfunction ();Struct mystructure{/*注意字段的和位*/ unsigned field1:4;Unsigned field2:4;};
ヘッダファルを編集して次のように置き換えます。
int myfunction ();struct mystructure{/*字段8位宽在MATLAB中被操纵*/ /*一个字符是8位在所有支持的平台*/ char allfields;金宝app};
ソ、スコ、ドの編集後、ラ、ブラリをリビルドします。こうしてmatlabでビットマスクを使用して,2のフィルドのデタにアクセスできます。
Enum宣言
枚举
の字符
定義はサポ,トされていません。Cでは,たとえば“一个”
という字符
定数はそれに等価の数値(65)に自動変換されます。Matlabは定数を変換しません。この型の枚举
を使用するには,ヘッダ,ファ,ルを編集して“一个”
を数字65に置き換えます(int8('A') == 65
)。たとえば,
enum枚举1 {ValA='A',ValB='B'};
を次に置き換えます。
enum枚举1 {ValA=65,ValB=66};
そのうえで,ラ。
共用体の非サポ,ト
共用体はサポ,トされていません。回避方法として,ソ,スコ,ドを変更して联盟
の宣言を取り除き,代替となる最大のもので置き換えます。次に,結果を解釈するために,必要に応じてmatlabコ,ドを作成します。たとえば,ソ,スコ,ドを編集して,次の共用体を
构造mystruct {union {Struct {char byte1,byte2;};短词;};};
次に置き換えます。
Struct mystruct{短词;};
リトルエンディアンベ,スのマシンでは,byte1
は国防部(256)
、byte2
はf / 256
,そして词= byte2 * 256 + byte1
となります。ソ、スコ、ドの編集後、ラ、ブラリをリビルドします。
コンパ@ @ラの依存関係
ヘッダーファイルは,プラットフォームでサポートされているコンパイラとの互換性がなければなりません。サポトされているコンパラの最新の一覧にいては,サポトされるコンパラを参照してください。他のコンパ▪▪ラに明示的に依存する外部ラ▪▪ブラリは読み込めません。
ポ▪▪ンタ▪▪の使用制限
関数ポンタ
共有ライブラリインターフェイスは,関数ポインターと連動するライブラリ関数はサポートしません。
マルチレベルポンタ
マルチレベルポ▪▪ンタ▪とポ▪▪ンタ▪を含む構造体はサポ▪ト制限があります。3以上の間接レベルで宣言された入出力および構造体メンバの使用はサポトされていません。たとえば,* * * outp两倍
からdoublePtrPtrPtr
への変換はサポ,トされていません。
可変数の関数入力引数の指定は非サポ,ト
共有ラ▪▪ブラリ▪▪ンタ▪フェ▪▪スでは▪▪省略記号(...
)で表される可変数の引数をもラブラリ関数はサポトされていません。
関数の呼び出しに使用する引数のセットごとに1つのプロトタイプファイル内で複数のエイリアス関数を作成できます。詳細は,Matlabプロトタ▪▪プファ▪▪ルを参照してください。