0
示例代碼如此不完美。假設我需要從函數返回一個數組和一個int(無法分別計算它們,因此需要一個函數)。 這三種方式中的哪一種會是最好的設計方式?C返回類型最佳實踐
int * return_pointer(int *num){
int *arr = calloc(5,sizeof(int));
//compute num and do stuff with arr
*num = computed_value;
return arr;
}
int return_int(int *arr){
int num = 0;
//compute num and do stuff with arr
num = computed_value;
return num;
}
void no_return(int *arr, int *num){
//compute num and do stuff with arr
*num = computed_value
}
如下
int main(){
int *arr = calloc(5,sizeof(int));
int num = 0;
// first function
arr = return_pointer(&num);
// second function
num = return_int(arr);
// third function
no_return(arr, &num);
free(arr);
}
所有3個功能將把內部ARR和num相同的值的這些所謂在主每一個。從設計和可讀性來看,哪一個最適合使用?
@cwallenpoole示例代碼在Code Review上偏離主題。 – Peilonrayz
@cwallenpoole是不是這與設計類別在這裏有關的stackoverflow?我想是的,如果它是脫離話題關閉它,我會在codereview中創建它 –
你也許可以通過編輯恢復在這裏的問題,而是問一個開放式的問題,這三個版本之間有什麼區別 - 沒有提到可讀性或「什麼是最好的」。由於對這些問題的回答通常會導致以意見爲基礎,因此這裏的人們往往對可讀性問題不滿。 – Lundin