
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
extern を付けると強制的に「外部リンケージを指定する」のに対し, extern を付けない場合にはそのような効果はない (翻訳単位全体を見たあとで「ああ, 外部リンケージが必要なんだな」と判断されるケースはある).
なので,
同名で「外部リンケージを持たない」ことを指定する宣言が他に存在する
場合には
・extern が付いていると不正なプログラム
・extern が付いていないと不正でないプログラム
と違いを生じることになる.
No.3
- 回答日時:
extern は、
定義ではなく宣言であると明示するキーワードなので、
関数プロトタイプ宣言は元から宣言であり、付けても意味は変わりません。
変数定義に付けて宣言に変えるのが主な使い方です。
extern "C" は、
宣言に加えて呼び出し規則も明示するため、
C言語とは異なる呼び出し規則の言語から呼び出すときに違いが出ます。
No.1
- 回答日時:
#include "hoge.h"
全ファイルから参照される場合は、hoge.hで宣言すれば
変わらないかと考えます。
関数・変数の実態はここにはなく外部参照ですと宣言してるだけ
実際は
グローバール関数・変数では、extern 宣言無でも関数は共有されます。
コード上は、どこかで関数本体を定義すればいいだけです。
古典的なCでは、関数を定義前に使った場合戻り値int ,引数voidとして
処理さえ、後で実体が定義されて引数と戻り値が違ってもエラーでません。
多くのバグの元ですが・・
いまのCは、プロトタイプ宣言無でも問題なく変な引数の場合はエラーでます。
C++の場合はエラーになります。
int hoge(void);
init hoge(int);
の関数が存在できるから
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プログラマー達は何故、プログラムを入れるフォルダーに容量制限があるのを知らない?
C言語・C++・C#
-
C言語 関数、変数の宣言について
C言語・C++・C#
-
visual studio 2022でのC#プログラミングのテンプレートについて
C言語・C++・C#
-
-
4
あってる
C言語・C++・C#
-
5
プログラミングc++を全く分からない状態から習得するまでどれくらいかかりますか?なぜ難しいと言われて
C言語・C++・C#
-
6
プログラミングに興味があるのですが、作りたいものはありません。 ゲーム機とかパソコンの中身(ソースコ
その他(プログラミング・Web制作)
-
7
C言語について(初心者)
C言語・C++・C#
-
8
JIT適用PHP8はJavaサーブレットより処理速度は早く、現在の全Webアプリ内で最速でしょうか?
C言語・C++・C#
-
9
COPYコマンドで、最後に1文字「Hex1A」が付くのはなぜ?外し方は?
その他(プログラミング・Web制作)
-
10
pythonについて(初心者です)
その他(プログラミング・Web制作)
-
11
DNCL(共テ用プログラミング言語)について 写真の(12)のプログラムにおいて、解説によると(12
C言語・C++・C#
-
12
AIがプログラムする時代のプログラマー不要論の相違について
その他(プログラミング・Web制作)
-
13
数学、プログラミング、物理、化学など理系の方に質問 プログラミング言語、数式、化学式などで会話をしよ
その他(プログラミング・Web制作)
-
14
DLLファイルの逆コンパイラについて詳しい方
C言語・C++・C#
-
15
趣味がプログラミングだと言ってもいい?
その他(プログラミング・Web制作)
-
16
プログラミング言語のバージョン確認について。
その他(プログラミング・Web制作)
-
17
IT業で開発をされてる方々に質問なんですが、一日に書かれるコード数ってどれくらいですか? また、最近
その他(プログラミング・Web制作)
-
18
今のプログラミング言語
その他(プログラミング・Web制作)
-
19
OS入ってる機器のソフト・アプリの作成(プログラム)って
その他(プログラミング・Web制作)
-
20
プログラミングについて
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Replace関数について教えて...
-
DLLファイルの逆コンパイラにつ...
-
逆コンパイルと逆アセンブルの...
-
CSSが全く分かりません、お助け...
-
バッチファイルで以下のような...
-
gccを行ってもexeファイルが生...
-
プログラマー達は何故、プログ...
-
VisualStudio2022でC言語プログ...
-
Windows Formアプリからコンソ...
-
C# で 数式文字列処理を処理す...
-
C言語のことです。写真(見にく...
-
Cのプログラムからアクセスでき...
-
C#でTreeViewのCheckBoxのサイ...
-
次の日本語の意味を教えて下さい
-
c#のTLS1.2での通信について
-
visual studio 2022でのC#プロ...
-
C言語の関数のextern宣言
-
PIC12F1822でLED調光器を作りたい
-
最初に聞かれたこと
-
C言語 関数、変数の宣言について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSSが全く分かりません、お助け...
-
DLLファイルの逆コンパイラにつ...
-
プログラマー達は何故、プログ...
-
C言語の関数のextern宣言
-
c言語
-
プログラミングc++を全く分か...
-
C言語について(初心者)
-
C言語 関数、変数の宣言について
-
あってる
-
Windows Formアプリからコンソ...
-
大量のデータを読み込んで表示...
-
visual studio 2022でのC#プロ...
-
逆コンパイルと逆アセンブルの...
-
DNCL(共テ用プログラミング言語...
-
VisualStudio2022でC言語プログ...
-
【C言語】全角文字の配列を、全...
-
C言語のことです。写真(見にく...
-
C#でログファイルにファイルパ...
-
C# で 数式文字列処理を処理す...
-
C#でTreeViewのCheckBoxのサイ...
おすすめ情報