使用下面顯示的結構,我可以像這樣使用它。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