我試圖做一些從客戶端發送到服務器的 RPC 矩陣……還有一些我不記得把他的 .x 檔案和一些“陣列”放在一起的直覺?宣告如下: int X <100>; 在 .x 的結構中……這是他創建的結構:
struct X_array{
int X <100>;
int X_size;
}
有趣的是,在他的客戶端代碼中,他有一些這樣的:(我會稍微總結一下)
printf("Give size)";
scanf("%d",&n);
average_1_arg.X.X_len=n;
avegare_1_arg.X_size=n;
average_1_arg.X.X_val=(int*)malloc(n*sizeof(int));
在他的 .x 中,該函式被宣告為: float average(X_array)=1;
他從哪里得到他的結構的這些部分?
對我來說最瘋狂的事情是我用“rpcgen -a -C dum.x”從 0 編譯了他的 .x,然后我撰寫了客戶端和服務器,就像他在他的 .c 中一樣,我的意思是,客戶端和服務器 .c's 然后在控制臺“make -f Makefile.dum”上運行,然后運行 ??./dum_server 和 ./dum_client 一切正常,沒有錯誤。我的想法是,X_array 結構中不存在于 .x 中的部分在客戶端代碼中,這些部分甚至無需宣告該變數的型別即可作業;即使那些是來自“int X <100>;”的指標 東西,那里有一個 int (.X_len) 和一個實際指標 (.X_val)。現在我已經通過將那些“<>”對更改為“[]”對進行了實驗,并編譯直到命令“make -f Makefile.dum”,編譯的地方給了我很多錯誤。我很感激你的幫助。
一個大學的朋友把那個代碼給了我,所以我不知道它的來源直接問創建者。謝謝。(:
uj5u.com熱心網友回復:
int X <100>;
不是 C。它是RPCGEN的 XDR 輸入,因此請參閱其語法檔案。RPCGEN 將其輸入檔案處理為 C 代碼,其中可能包括自動宣告一個帶有一堆附加成員的結構。
有關“可變長度陣列宣告”,請參閱RPCGEN 手冊中的6.8 (3) ,其中特別解釋了_len
和_val
成員的創建。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/385070.html