malloc関数を呼び出すときに暗黙の関数宣言警告プロンプトが表示されますが、mallcoまたはstdlibヘッダーファイルは含まれません



Implicit Function Declaration Warning Prompt When Calling Malloc Function Does Not Include Mallco



malloc関数を呼び出すが、またはを含まない場合の暗黙的な関数宣言警告プロンプト

ヘッダーファイルが含まれていない場合のmallocの使用に関する問題
動的メモリ割り当てに遭遇したとき、malloc関数を使用したときにヘッダーファイルを取り込むのを忘れていましたが、コンパイル後にエラーメッセージはなく、直接実行しても問題はありませんでしたが、警告メッセージが表示されました(1多くの英語...)、ブログ検索後の回答のほとんどは暗黙の関数宣言の質問です。ヘッダーファイルを追加するだけで、好奇心から暗黙の関数宣言をもう一度検索します。結果はまだそれらの記事です。 。 。 。そこで、他のWebサイトにアクセスして、散在する知識ポイントを検索して組み合わせ、すべての人と共有しました。
(ps:ブログを書くのは初めてなので(ブログの操作もオンライン検索です))、私はニワトリですが、もっと興味があり、記事の内容はまだ包括的ではありません多くの深い知識を理解していないので、私はいくつかの比較的明白なことだけを書きました。 1つはメモとして使用し、最初に覚えてから、さらに学習して追加を続けることです。2つ目は、私が書いたものが、始めたばかりで私のように好奇心が強い私の小さな友達に役立つことを願っています)

テキスト
コードで関数が参照されている場合がありますが、ヘッダーファイルは含まれていません。コンパイル後、プロンプト情報バーにいくつかの奇妙なことが表示されます(エラーがない場合もありますが、警告だけです)。malloc関数を例にとると、一般的なプロンプト情報は次のとおりです。



警告:関数「malloc」の暗黙の宣言
警告:組み込み関数「malloc」の互換性のない暗黙の宣言
注:「」を含めるか、「malloc」の宣言を提供してください

おそらく意味します:
関数 'malloc'の暗黙の宣言
組み込み関数 'malloc'の互換性のない暗黙の宣言
ヘッダーファイル ''をインクルードするか、 'malloc'ステートメントを指定するように求められます



codeBlock
暗黙の宣言:
プログラムの実行中、コンパイラは関数呼び出しのコードを処理するときに関数プロトタイプを見つけません(関数プロトタイプは呼び出された関数のパラメータラティスの数を示すことができ、パラメータタイプは戻り値のタイプです。関数プロトタイプはコマンドを明確に実行できます)、コマンドが見つからない場合は、この時点で処理されている関数呼び出しコードに基づいて暗黙の宣言を行うことしかできず、警告メッセージを表示します。ただし、暗黙的な宣言は信頼できず、そのパラメーター型または戻り値型は必ずしもプログラマーが期待したものと一致するとは限りません。 (ここにプッシュされただけなので)

組み込み関数/組み込み関数
コンパイラーの内部には、標準ライブラリー関数に似たいくつかの組み込み関数(キーワードに少し似ています)があります。組み込み関数は、主にコードを最適化するために使用されます。それらを使用する場合、ヘッダーファイルをインクルードすることはできませんが、関数名には次のように__builtin_をプレフィックスとして付ける必要があります。
mallocを使用する場合:
1、#含める
//使用することもできます、あなたはそれを含むと考えることができます
int * p
p =(int *)malloc(sizeof(int)* 10)
2.または直接
int * p
p =(int *)__ builtin_malloc(sizeof(int)* 10)//ヘッダーファイルを追加する必要はありません
画像
もちろん、ヘッダーファイルを含めることが最も直接的で効果的な解決策です。
組み込み関数については、ここで言うのはあまり良くないかもしれませんが、兄貴がいれば追加できます。