Unit Delay Initialization C Code Generation
이전 댓글 표시
I have a model in which I am generating C code for. This model has a Unit Delay block in with an intial condition set to 0. When I generate the C code, where the intialization step would usually occur for a non zero Initial condition, No code is generated but I assume somewhere it must be intialising this variable. Where is this done instead and why does it change.
Thanks
답변 (1개)
Fangjun Jiang
2024년 3월 18일
이동: Fangjun Jiang
2024년 3월 28일
0 개 추천
You could experiment. Set the initial value to be zero and non-zero to see where the code is located. Note that in C code, the initial value for a variable is zero by default. Or it can be initialized when the variable is declared, such as
int myNum = 15;
댓글 수: 8
Jack
2024년 3월 18일
이동: Fangjun Jiang
2024년 3월 28일
Fangjun Jiang
2024년 3월 18일
이동: Fangjun Jiang
2024년 3월 28일
"int myNum;" is not guranteed to be "int myNum = 0;" so it's better to use latter. For you, you want to know where the initial value is set for the Unit Delay output in the generated code, you can do experiment, just check the code in the zero and non-zero cases.
Fangjun Jiang
2024년 3월 18일
이동: Fangjun Jiang
2024년 3월 28일
Found this at the link. https://stackoverflow.com/questions/7975008/initializing-variables-in-c
A rule that hasn't been mentioned yet is this: when the variable is declared inside a function it is not initialised, and when it is declared in static or global scope it's set to 0:
int a; // is set to 0
void foo() {
int b; // set to whatever happens to be in memory there
}
However - for readability I would usually initialise everything at declaration time.
Jack
2024년 3월 18일
이동: Fangjun Jiang
2024년 3월 28일
Fangjun Jiang
2024년 3월 18일
이동: Fangjun Jiang
2024년 3월 28일
Try to search the code when the initial value is zero. It must be initialized when it is declared.
Jack
2024년 3월 18일
이동: Fangjun Jiang
2024년 3월 28일
Fangjun Jiang
2024년 3월 18일
이동: Fangjun Jiang
2024년 3월 28일
no. There should be a generated C code variable that corresponds to the output of the Unit Delay block. Search the declaration of that variable in the C code. You can turn on traceability to help find it.
Jack
2024년 3월 18일
이동: Fangjun Jiang
2024년 3월 28일
카테고리
도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!