
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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# C言語 列挙型(enum型)変数について 7 2024/01/15 14:20
- JavaScript 条件に該当した時のみ定数を宣言する事はできますか 8 2023/03/15 05:55
- Excel(エクセル) 表中の指定した条件の文字列を結合する方法について 4 2024/08/01 14:32
- その他(プログラミング・Web制作) 特定の項目セルにスキャン(入力)すると連続で5行に自動で日付がはいる 1 2024/07/31 14:20
- 哲学 フォルダによる本質証明と述語証明 2 2023/10/10 00:53
- その他(プログラミング・Web制作) 関数定義について質問です 架空のプログラミング言語ですが、こういう関数があった時、何を返してくれそう 4 2024/01/03 17:27
- その他(Microsoft Office) 【スプレドシート】IMPORTRANGE関数とSUMIFSの組み合わせ 1 2023/03/05 18:17
- その他(悩み相談・人生相談) 売り言葉に買い言葉で、数年後に出ていく!と宣言した場合、本気じゃなければ撤回しますか? 謝りもせず、 3 2024/12/16 09:46
- Excel(エクセル) Googleスプレッドシートどの関数を使えば? 1 2024/08/12 17:15
このQ&Aを見た人はこんなQ&Aも見ています
-
いちばん失敗した人決定戦
あなたの「告白」での大失敗を教えてください。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
人生で一番思い出に残ってる靴
皆さんの人生で一番思い入れのある靴の話を伺ってみたいです。
-
チョコミントアイス
得意ですか?不得意ですか?できれば理由も教えてください。
-
自分用のお土産
国内や海外に旅行へ行った時、自分用のお土産ってどれくらい買いますか?
-
プログラマー達は何故、プログラムを入れるフォルダーに容量制限があるのを知らない?
C言語・C++・C#
-
Cのプログラムからアクセスできないファイル名の一括変更方法
C言語・C++・C#
-
C言語 関数、変数の宣言について
C言語・C++・C#
-
-
4
逆コンパイルと逆アセンブルの違いはなんですか
C言語・C++・C#
-
5
あってる
C言語・C++・C#
-
6
c++の勉強方法を教えてくださいプログラミングをやった事がなく1から勉強を始めようと思います1日1時
C言語・C++・C#
-
7
C言語のことです。写真(見にくくてすいません)の下のプログラムを実行したいのですが四行目がおかしいと
C言語・C++・C#
-
8
プログラミングc++を全く分からない状態から習得するまでどれくらいかかりますか?なぜ難しいと言われて
C言語・C++・C#
-
9
C# で 数式文字列処理を処理する方法
C言語・C++・C#
-
10
プログラミングに興味があるのですが、作りたいものはありません。 ゲーム機とかパソコンの中身(ソースコ
その他(プログラミング・Web制作)
-
11
プログラミング言語についてc++に空白あると同じ文字を再度繰り返して処理しないといけないので2倍動作
C言語・C++・C#
-
12
C言語について(初心者)
C言語・C++・C#
-
13
JIT適用PHP8はJavaサーブレットより処理速度は早く、現在の全Webアプリ内で最速でしょうか?
C言語・C++・C#
-
14
今ってプログラミング言語は何が中心?
C言語・C++・C#
-
15
プログラミング言語でアプリやゲームweb制作をしようと思っております。色んなプログラミング言語がある
C言語・C++・C#
-
16
DNCL(共テ用プログラミング言語)について 写真の(12)のプログラムにおいて、解説によると(12
C言語・C++・C#
-
17
COPYコマンドで、最後に1文字「Hex1A」が付くのはなぜ?外し方は?
その他(プログラミング・Web制作)
-
18
pythonについて(初心者です)
その他(プログラミング・Web制作)
-
19
プログラムの実行時に'<'でリダイレクトする場合でも、キーボードからの入力を受け取られる件について
C言語・C++・C#
-
20
これて逆じゃないですか?
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でログファイルにファイルパ...
-
Windows Formアプリからコンソ...
-
大量のデータを読み込んで表示...
-
C言語の関数のextern宣言
-
プログラマー達は何故、プログ...
-
gccを行ってもexeファイルが生...
-
c#のTLS1.2での通信について
-
VisualStudioでC++クラスを追加...
-
int16_t の _t は何?
-
【C言語】全角文字の配列を、全...
-
C言語 配列と関数の練習問題
-
C言語って古いですか?
-
ホワイトハッカーを目指そうか...
-
プログラミング 素数か素数では...
-
略語の読み方について
-
UART通信の取説で,left floati...
-
C#でTreeViewのCheckBoxのサイ...
-
逆コンパイルと逆アセンブルの...
-
c++でテンプレートのコードでわ...
-
C言語でファクト関数を使わずに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラマー達は何故、プログ...
-
C言語の関数のextern宣言
-
Windows Formアプリからコンソ...
-
大量のデータを読み込んで表示...
-
PIC12F1822でLED調光器を作りたい
-
最初に聞かれたこと
-
C言語について(初心者)
-
RP2040のコンテキストのディス...
-
C言語 関数、変数の宣言について
-
VisualStudioでC++クラスを追加...
-
C#でログファイルにファイルパ...
-
【C言語】全角文字の配列を、全...
-
逆コンパイルと逆アセンブルの...
-
VisualStudio2022でC言語プログ...
-
c#のTLS1.2での通信について
-
int16_t の _t は何?
-
c言語
-
バッチファイルで以下のような...
-
gccを行ってもexeファイルが生...
-
C++でデスクトップGUIアプリ開...
おすすめ情報