主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

coder.cstructname

生成されたコードでのC構造体に名前を付ける

説明

coder.cstructnameは,生成されたコ,ドで構造体として表されるmatlab®

coder.cstructname (varstructName, matlabvarに対して生成されたc構造体型に名前を付けます。入力varには,構造体または单元格配列を指定できます。。varを定義した後,varを最初に使用する前にcoder.cstructnameを配置します。varがエントリポイント(最上位レベル)関数入力引数の場合,関数の最初の,制御フローステートメントの前にcoder.cstructnameを配置します。

coder.cstructname (varstructName“外来的”,“HeaderFile”,headerfileは,varに使用するc構造体型の名前がstructNameで,この型が外部ファイルheaderfileNameで定義されていることを指定します。

ヘッダーファイルを指定せずに“外来的”。ただし,コ,ドジェネレ,タ,で# includeステトメントが正しい位置に生成されるようにヘッダファルを指定することをお勧めします。

coder.cstructname (varstructName“外来的”,“HeaderFile”,headerfile“对齐”,对齐【中文译文structName構造体型に対する実行時のメモリ配置も指定します。嵌入式编码器®があり,カスタムのコード置換ライブラリ(CRL)を使用している場合,コードジェネレーターが構造体の配置を必要とするCRL関数を一致させることができる配置を指定します。代码替换的数据对齐(嵌入式编码)を参照してください。

outtype= coder.cstructname (intypestructNameC、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、C、Couttypeを返します。coder.cstructnameは,intype入力型のプロパティを使用してouttypeを作成します。次に,TypeNameプロパティをstructNameに設定します。この構文を使用して,codegenarg游戏。コ,ドを生成する関数でこの構文を使用することはできません。

中文MATLAB函数ブロックで使用できません。

outtype= coder.cstructname (intypestructName“外来的”,“HeaderFile”,headerfileは,外部で定義されているc構造体型の名前と場所を指定する型オブジェクトouttypeを返します。コードジェネレーターは,型がouttypeの変数に外部で定義された構造体型を使用します。

中文MATLAB函数ブロックで使用できません。

outtype= coder.cstructname (intypestructName“外来的”,“HeaderFile”,headerfile“对齐”,对齐はC構造体型の配置も指定する型オブジェクトouttypeを作成します。

中文MATLAB函数ブロックで使用できません。

すべて折りたたむ

Matlab関数myfunで,変数v(1)、(1)、(2)、(3)、(3MyStruct> > > >

函数Y = myfun()% # codegenV = struct(“一个”,1,“b”2);coder.cstructname (v,“myStruct”);Y = v;结束

。たとえば,スタティック ライブラリを生成します。

codegen配置:自由myfun报告

生成された構造体型を表示するには,codegen / lib / myfun / myfun_types.hを開くか,コ,ド生成レポ,トのmyfun_types.hを表示します。生成されたc構造体型は次のとおりです。

类型定义struct {double a;双b;} myStruct;

Matlab関数myfun1で,構造体v★★★★★★★★MyStruct> > > >翻译成v.b中文:全英文,全英文,全英文mysubStruct> > > >

函数Y = myfun()% # codegenV = struct(“一个”,1,“b”结构(“f”3));coder.cstructname (v,“myStruct”);coder.cstructname (v.b“mysubStruct”);Y = v;结束

生成されたc構造体型mysubStruct★★★★★★

struct {double f;} mysubStruct;

生成されたc構造体型myStruct★★★★★★

类型定义struct {double a;mysubStruct b;} myStruct;

matlabmyfun2で,cell配列c(1)、(1)、(2)、(3)、(3myStruct> > > >

函数Z = myfun2() c = {1 2 3}coder.cstructname (c,“myStruct”) z = c;

c★★★★★★★★★★★★★★★

struct {double f1;双f2;双f3;} myStruct;

C。

mycstruct型のパラメーターを受け入れる関数mycaddのCヘッダーファイルmycadd.hを作成します。ヘッダファルで型mycstructを定義します。

# MYCADD_H #定义MYCADD_H类型定义{双f1;双f2;} mycstruct;mycadd(mycstruct *s);# endif

C键mycadd.cを作成します。

#include  #include  #include "mycadd.h" double mycadd(mycstruct *s){返回s->f1 + s->f2;}

mycaddへの参照渡しにより構造体を渡すMATLAB関数mymAddを作成します。coder.cstructnameを使用して,生成されたコードで,構造体にmycadd.hで定義されたc型mycstructがあることを指定します。

函数y = mymAdd% # codegenS = struct(“f1”, 1“f2”2);coder.cstructname(年代,“mycstruct”“外来的”“HeaderFile”“mycadd.h”);Y = 0;Y = coder.ceval“mycadd”coder.ref (s));

関数mymAddのcスタティックラescブラリを生成します。

codegen配置:自由mymAddmycadd.c
mycstructは外部の型であるため,生成されたヘッダーファイルmymadd_types.h你说得对mycstructの定義が含まれていません。

エントリポイント関数myFunction。コマンドラesc escンで入力引数の型を指定するには,次の手順を実行します。

  1. 例の構造体年代を定義します。

  2. coder.typeofを使用して年代からT我不知道。

  3. coder.cstructname★★★★★★★T1我不知道。

    • T【中文翻译】

    • 生成されたc構造体型myStructに名前を付ける。

  4. arg游戏オプションを使用して,型をcodegenに渡します。

以下に例を示します。

S = struct()“一个”、双(0)“b”单(0));T = code .typeof(S);T1 = coder.cstructname(T,“myStruct”);codegen配置:自由myFunctionarg游戏T1

または,例の構造体から直接構造体型を作成できます。

S = struct()“一个”、双(0)“b”单(0));T1 = code .cstructname(S,“myStruct”);codegen配置:自由myFunctionarg游戏T1

入力引数

すべて折りたたむ

中文:中文:matlab4 . matlab4 . matlab4 .细胞。

“”“”“”“”“”“”“”文字ベクトルまたは字符串スカラとして指定します。

C構造体型の定義を含むヘッダーファイルの名前。文字ベクトルまたは字符串スカラとして指定します。

ファesc escルへのパスを指定するには,次を実行します。

  • codegen-我オプションまたはMATLAB编码器™アプリ設定[カスタムコ,ド]タブの[追加econp econpンクルドディレクトリ]パラメ,タ,を使用します。

  • MATLAB函数ブロックの場合は,[シミュレ,ションタ,ゲット]ペ@ @ンおよび[][カスタムコ,ド]ペ电子邮箱ンで,[追加のビルド情報][huawei @ huawei @ huawei @ huawei @ huawei @ huawei]パラメ,タ,を設定します。

または,“addIncludePaths”オプションを指定してcoder.updateBuildInfoを使用します。

例:“mystruct.h”

中文:。

型オブジェクトを作成する基になる構造体型オブジェクト,细胞配列型オブジェクト,構造体変数または细胞配列変数。

制限

  • coder.cstructname。,coder.cstructname。次に,codegenを実行するときに,グロ,バル変数にその型があることを指定します。グローバル構造体変数と共に使用するためのC構造体型の命名を参照してください。

  • 单元格配列入力の場合,外部で定義された構造体のフィ,ルド名はf1f2…………………

  • coder.cstructnameはクラスプロパティに直接適用できません。

ヒント

  • コドジェネレタで構造体フィルドのc / c++型を判断する方法の詳細にいては,生成コードの型へのMATLAB型のマッピングを参照してください。

  • 構造体配列でcoder.cstructname。したがって,coder.cstructnameは構造体配列に適用できず,異なるc構造体型の名前で配列に適用します。。2番目のcoder.cstructname【中文翻译myStructArrayNameに設定しようとするため,これが前に指定した名前myStructNameと競合します。

    定义带有字段a的标量结构myStruct = struct(“一个”, 0);coder.cstructname (myStruct“myStructName”);定义一个字段为a的结构数组myStructArray = repmat(myStruct,4,6);coder.cstructname (myStructArray“myStructArrayName”);

  • coder.cstructnameを構造体配列の要素に適用すると,coder.cstructnamecoder.cstructnameを構造体配列の要素に適用する場合は,単一の添字を使用して要素を参照しなければなりません。たとえば,var (1)は使用できますが,var (1, 1)は使用できません。coder.cstructnamevar (:)に適用すると,coder.cstructnamevarまたはvar (n)に適用した結果と同じ結果になります。

  • 。ここでは,cell配列でのcoder.cstructnameの使用にいて取り上げます。

    • コードを生成する関数では,细胞配列変数でcoder.cstructnameを使用するとcell配列は異種混合になります。したがって,cell 配列がエントリポイント関数入力で、その型が永続的に同種の場合、cell 配列でcoder.cstructnameは使用できません。

    • coder.cstructnameを同種编码器。CellTypeオブジェクトintypeで使用する場合,返されたオブジェクトは異種混合になります。したがって,coder.cstructname【翻译编码器。CellType。细胞配列が永続的に同種の場合の詳細については、细胞を参照してください。

    • 编码器。CellTypeオブジェクトで使用すると,coder.cstructname【中文翻译编码器。CellTypeオブジェクトを作成します。

  • 行優先および列優先の配列レイアウトのプロジェクトでcoder.cstructnameという名前の構造体を使用すると,特定の状況において,コードジェネレーターはこの構造体名の先頭にrow_またはcol_★★★★★★★★★★★★★★この名前変更により,両方の配列レ。

  • これらのヒントはMATLAB函数ブロックにのみ適用されます。

    • MATLAB函数。構造体型に対して生成された名前は,バス信号名に由来します。coder.cstructnameを使用して,入力信号と出力信号の構造体型に名前を付けないでください。MATLAB函数ブロック内での構造体の作成(金宝app模型)を参照してください。

    • coder.cstructname。嵌入式编码器がある場合は,命名規則をカスタマ编码器ズできます。(英译汉)1 .中文(嵌入式编码)を参照してください。

R2011aで導入