我在Vector CANoe中開發了CAPL腳本,我需要定義幾個返回文本字符串的函數。在C語言中,我會寫這樣的事:是否可以定義一個返回文本字符串的CAPL函數?
char * ErrorCodeToMsg(int code)
或
char [] ErrorCodeToMsg(int code)
在CAPL,兩個定義失敗,並parse error
。我想出了迄今爲止唯一的工作解決方法是:
variables {
char retval[256];
}
void ErrorCodeToMsg(int code) {
char [] msg = "Hello word";
strncpy(retval, msg, 256);
}
當然,這是非常醜陋的,因爲每次調用ErrorCodeToMsg
需要兩個語句,而不是一個。有沒有更好的辦法?
+1用於避免全局變量。我仍然希望一個真正的'char *'返回值能夠'write(「Error:%s」,ErrorCodeToMsg(errno))',這要感謝你確認它不會發生。 –