2014-11-22 41 views
1

我可以依賴SAL多少錢?我需要做的如果我使用SAL,我可以刪除NULL和邊界檢查嗎?

NSTATUS my_func(_In_ int *p) 
{ 
    if (NULL == p) { 
     return STATUS_INVALID_PARAMETER; 
    } 
    *p = 1; 
    return STATUS_SUCCESS; 
} 

或者我可以做

NTSTATUS my_func(_In_ int *p) 
{ 
    *p = 1; 
    return STATUS_SUCCESS; 
} 
+0

你確定這應該被標記爲'C'而不是'C++'嗎? – EOF 2014-11-22 02:14:51

+0

@EOF - 對不起,這麼長的延遲!是的,我正在使用C編寫Windows內核驅動程序。 – Thomas 2015-03-05 01:05:02

回答

2

SAL只提供在編譯時靜態檢查。這假設所涉及的所有代碼都有適當的註釋並且也被檢查過。這對您的應用程序或模塊而言是可行的,但要小心與其他庫的邊界。

+0

哇,我剛纔看到這個問題得到了答案!點擊複選標記,抱歉超長時間延遲。也會讓你高興,但看起來我需要15點聲望。 – Thomas 2015-03-05 01:03:59

相關問題