一個指針的運用

5 熟練使用指針操做 若是你不熟悉指針操做,那麼你幾乎沒法設計出高效的服務器,若是你要真正的理解指針的概念,對於設計服務器來講就是如虎添翼。 下面舉個例子,如使用Recv接收數據到Buffer中後,你須要進行解密操做,你能夠使用下面的方法進行: var   a,b:array [1..8] of byte;   i :integer;   ResultBuffer :array [1..Max] of byte; begin   for i := 1 to Sizeof(Buffer) div 8 do   begin     move(Buffer[(i-1)*8+1],a,8);     Des(a,b,true);  //這裏使用DES加解密處理     move(b,ResultBuffer[(i-1)*8+1],8);   end; end 你們看一看,上面的代碼,思路很清楚,就是將接收到的Buffer分別按8個提到變量a中,再使用DES解密算法解密成b,再放回ResultBuffer中。 若是你熟練使用指針的話,效率會極大的提升 var   a,b:Pbyte;   i :integer;   ResultBuffer :array [1..Max] of byte; begin   for i := 1 to Sizeof(Buffer) div 8 do   begin     a := @Buffer[(i-1)*8+1];     b := @ResultBuffer[(i-1)*8+1]     Des(a^,b^,true);  //這裏使用DES加解密處理   end; end 再看一看上面的代碼,是否是少了兩個Copy數據的過程,這就是指針給你帶來的高效。
相關文章
相關標籤/搜索