私はCでプログラムに取り組んでおり、8051アーキテクチャデバイス用のSDCCコンパイラを使用しています。フラッシュメモリから8文字を読み取り、文字配列を何らかの形式で返すGetNameという関数を作成しようとしています。Cで配列を返すことはできないことを知っているので、次のような構造体を使用してそれを実行しようとしています。
//********************FLASH.h file*******************************
MyStruct GetName(int i); //Function prototype
#define NAME_SIZE 8
typedef struct
{
char Name[NAME_SIZE];
} MyStruct;
extern MyStruct GetName(int i);
// *****************FLASH.c file***********************************
#include "FLASH.h"
MyStruct GetName( int i)
{
MyStruct newNameStruct;
//...
// Fill the array by reading data from Flash
//...
return newNameStruct;
}
この関数への参照はまだありませんが、何らかの理由で、「関数は集計を返すことができません」というコンパイラエラーが発生します。これは、私のコンパイラが構造体を返す関数をサポートしていないことを意味しますか?それとも私は何か間違ったことをしているだけですか?