我不是C程序員,但我需要爲可以用C擴展的應用程序之一獲得簡單的POC。我通過傳遞數據直接通過我的模塊來編譯代碼,而我的想法是通過傳入的字符串的反向來證明我的代碼實際上已經對數據做了某些事情。處理函數和指針
我目前有這樣的代碼給每個輸入通過直到輸出:
INFA_CTSetData(outputGroupPorts[i],
INFA_CTGetDataStringM(inputGroupPorts[i]));
的INFA_CTGetDataStringM
函數被定義爲:
char* INFA_CTGetDataStringM(INFA_CT_INPUTPORT_HANDLE dataHandle);
我已經發現一個函數來扭轉字符串here
char *mystrrev(char *s)
{
char *start = s, *t = strchr(s, '\0'); /* point to end of string */
/*
* Swap the values at the beginning (pointed to by 's') and the end
* (pointed to by 't'); 's' and 't' meet in the middle.
*/
for (--t/* skip terminating null character */; s < t; ++s, --t)
{
/* Just your run-of-the-mill swap here. */
char temp = *s;
*s = *t;
*t = temp;
}
return start;
}
我沒有做的是通過致電INFA_CTGetDataStringM
通過mystrrev
和INFA_CTSetData
的結果。
INFA_CTSetData(outputGroupPorts[i],
mystrrev(INFA_CTGetDataStringM(inputGroupPorts[i])));
產生在編譯這些錯誤
p_Reverse.c:155: error: conflicting types for 'mystrrev'
p_Reverse.c:145: error: previous implicit declaration of 'mystrrev' was here
年,如果Visual Basic和C#使我的生命太容易了 - 可有一個人幫我把這個代碼的工作?我一味地嘗試添加*
和&
以獲得不同的編譯器錯誤 - 現在我被困住了。