簡體   English   中英

有什么方法可以打印出 function 的主要返回值嗎?

[英]Is there any way to print out the return of a function in main?

我對 C 很陌生,我想知道是否有任何方法可以打印出 function 的返回,以便我可以查看它是否在做我想做的事情。

int sum_arr1_ok() {
    int pass = 1;
    int fail = 0;


    int arr1[] = {1,2,3,4,5}; // small positive values
    int arr2[] = {10,-5,5,8,-2}; //mix of small positive and negative values
    int arr3[] = {-100,90,-374,497,64,-5,22}; // mix of larger positive negative values
    int arr4[] = {0}; // zero
    int arr5[] = {-2,-7,-19,-53,-5,-11}; // all negative values
    int arr6[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; // large array


    int n1 = sizeof(arr1)/sizeof(arr1[0]);
    int n2 = sizeof(arr2)/sizeof(arr2[0]);      //determines the number of elements in an array
    int n3 = sizeof(arr3)/sizeof(arr3[0]);
    int n4 = sizeof(arr4)/sizeof(arr4[0]);
    int n5 = sizeof(arr5)/sizeof(arr5[0]);
    int n6 = sizeof(arr6)/sizeof(arr6[0]);

    if((sum_arr1(arr1,n1) == 15)
    && (sum_arr1(arr2,n2) == 16)
    && (sum_arr1(arr3,n3) == 194)
    && (sum_arr1(arr4,n4) == 0)
    && (sum_arr1(arr5,n5) == -97)
    && (sum_arr1(arr6,n6) == 210)) {
        return pass;  // returns 1 if true
    } else {
        return fail;  // returns 0 if false
    }

我知道 if 語句有點混亂,但現在我正試圖找到一種方法來查看我的 function 是否正在正確返回我需要的內容。

我將如何准備一個主要的 function 以便打印出我的測試是通過還是失敗?

如果您想知道 function 正在返回什么,您需要重構代碼以將返回值保存在變量中以便打印。

int rval;

rval = sum_arr1(arr1,n1);
printf("sum_arr1(arr1,n1) = %d\n", rval);
if (rval != 15) return false;

rval = sum_arr1(arr2,n2);
printf("sum_arr1(arr2,n2) = %d\n", rval);
if (rval != 16) return false;

rval = sum_arr1(arr3,n3);
printf("sum_arr1(arr3,n3) = %d\n", rval);
if (rval != 194) return false;

rval = sum_arr1(arr4,n4);
printf("sum_arr1(arr4,n4) = %d\n", rval);
if (rval != 0) return false;

rval = sum_arr1(arr5,n5);
printf("sum_arr1(arr5,n5) = %d\n", rval);
if (rval != -97) return false;

rval = sum_arr1(arr6,n6);
printf("sum_arr1(arr6,n6) = %d\n", rval);
if (rval != 210) return false;

return true;

或者,您可以讓 function 在啟動時打印其參數,並在返回之前打印其返回值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM