使用下面显示的结构,我可以像这样使用它。C++传递一个匿名结构的引用 - 你能吗?
NMEADecodedSentence s;
auto & gga = s.GGA;
auto alt = gga.Alt;
但有可能对匿名结构的引用传递给一个函数,如:
SomeFunc(gga);
如果是的话,会是什么函数签名是什么样子?我的想法是没有命名的结构,但我只是想知道是否有一些聪明的做法,我不知道!
struct NMEADecodedSentence
{
GNSSSentenceType Type;
GNSSTalkerId TalkerId;
union
{
struct
{
char Time[10]; // UTC time - hhmmss.ss
char Lat[13]; // Latitude (degrees & minutes) - ddmm.mmmmm
char NS; // North/South indicator
char Long[14]; // Longitude (degrees & minutes) - dddmm.mmmmm
char EW; // East/West indicator
uint8_t Quality; // Quality indicator for position fix
uint8_t NumSV; // Number of satellites used (0-12)
float HDOP; // Horizontal Dilution of Precision
float Alt; // Altitude above mean sea level - meters
}GGA;
struct // Recommended minimum data
{
char Time[10]; // UTC time - hhmmss.ss
char Status; // Status, V = Navigation receiver warning, A = Data valid
char Lat[13]; // Latitude (degrees & minutes) - ddmm.mmmmm
char NS; // North/South indicator
char Long[14]; // Longitude (degrees & minutes) - dddmm.mmmmm
char EW; // East/West indicator
float Spd; // Speed over ground - knots
float COG; // Course over ground - degrees
char Date[7]; // UTC Date - ddmmyy
}RMC;
struct // Course over ground and ground speed
{
float COGT; // Course over ground (true) - degrees
float COGM; // Course over ground (magnetic) - degrees
float Kph; // Speed over ground - kph
}VTG;
};
};
你想在函数声明中使用'auto'吗? –
解释:你可以做这个,但**应该**你?在声明中省略名称真的值得接收函数中额外的样板吗?你从中得到了什么,真的吗? –
@underscore_d声明可能是某种类型的库或供应商提供的代码,因此他可能不会冒险去改变它(编辑具有外部源的头文件通常是个坏主意) – Swift