強類型
C 是弱式類型語言,也就是說,編譯器允許不同類型變數之間的指派和比較等作業。 例如,C 允許將變數的值轉換成另一種類型。 在相同運算式中使用不同類型變數的能力,可提升彈性和效率。
強型別語言會對不同類型變數之間的作業施加限制。 在這些情況下,編譯器會發出禁止作業的錯誤。 這些有關資料類型的嚴格指導方針是設計來避免潛在的錯誤。
針對遠端程序呼叫使用弱式類型語言,例如 C 的困難在於分散式應用程式可以在具有不同 C 編譯器和不同架構的數部不同電腦上執行。 當應用程式只在一部電腦上執行時,您不需要擔心內部資料格式,因為資料會以一致的方式處理。 不過,在分散式運算環境中,不同的電腦可以使用其基底資料類型的不同定義。 例如,有些電腦會定義 int 類型,因此其內部標記法是 16 位,而其他電腦則使用 32 位。 一個稱為「小端」的電腦架構會將最小有效位元組的資料指派給最低記憶體位址,並將最重要的位元組指派給最高位址。 另一個稱為「大端」的架構會將最小顯著位元組指派給與該資料相關聯的最高記憶體位址。
遠端程序呼叫需要嚴格控制參數類型。 為了透過網路處理資料傳輸和轉換,MIDL 會嚴格強制執行透過網路傳輸之資料的型別限制。 因此,MIDL 包含一組定義完善的 基底類型。 MIDL 藉由使用明確定義資料大小和類型的關鍵字,強制執行強型別。 強型別最明顯的效果是 MIDL 不允許 類型 void *的變數。
在下列主題中,本節討論強制執行強式資料輸入的 MIDL 語言功能: