簡體   English   中英

從printf調用另一個函數?

[英]Calling another function from printf?

我正在從有關C / Objective-C的書中進行一個簡單的挑戰,我必須編寫一個程序來計算和顯示整數的平方,同時還要將數字放在引號中。

我制作了一個可以成功運行的程序,但是對此有兩個問題。 首先,我想到了減少代碼量的想法,以實現高效,簡潔的代碼,我從printf語句中調用了squareOfInteger函數。 這是明智的嗎? 它奏效了,但我擔心這可能是不好的做法?

困擾我的另一件事是我是否需要在變量number之前將類型重復聲明為函數內的int類型,還是將結果聲明為int類型並忽略類型是否足夠在參數中,我在下面做了。

這是我的代碼:

#include <stdio.h>

int squareOfInteger(number)
{
    int square = number * number;
    return square;



}

int main(int argc, const char * argv[]) {
    int myNumber = 5;
    printf("\"%d\" squared is \"%d\".\n", myNumber, squareOfInteger(myNumber));
    return 0;
}

非常感謝您的幫助。

我從printf語句調用了squareOfInteger函數。 這是明智的嗎? 它奏效了,但我擔心這可能是不好的做法?

printf()調用函數還不錯。 但是由於未指定printf()的求值順序,因此可能會導致行為不確定的情況,例如:

int func(int *p)
{
   *p =30;
}
int main()
{
   printf("%d %d",num,func(&num));
   return 0;
}

在這里,您要調用func()並打印num的值,以便擁有UB。

將結果聲明為int類型,並在參數中省略類型是否足夠

如果未指定參數的類型,則默認為int 。但是最好提及參數的類型。

“我從我的printf語句中調用了squareOfInteger函數。但是這是明智的做法嗎?”

從函數內部調用函數沒有錯。 這取決於大小寫,在這種情況下您需要保留平方值(而不是僅需要打印該值),並對其執行其他操作。 喜歡:

int value = myFun(100);
int nextVal = myNextFun(value);

“困擾我的另一件事是我是否需要在變量編號之前將類型重復聲明為函數的參數內部的int值,或者是否足以將結果聲明為int類型,而忽略掉輸入參數,我將在下面完成。”

是的,您應該使用定義數字的類型(在默認情況下為整數類型,如果您使用其他類型的數字,則默認情況下將失敗)作為最佳實踐,因為這會使代碼更清晰易讀。

暫無
暫無

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

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