
No.7ベストアンサー
- 回答日時:
コンパイラではコメント部は読み捨てられるので無理です。
代案1.
コピーライトなどの文章を出力する機能を
コメントではなくプログラム機能として実装する
代案2.
Cプリプロセッサにてコメント部を文字列に変換してからコンパイラにかける
ただし、そのためのマクロを破綻なく書くのはとても難しいので注意
代案3.
doxygen 等の文書生成ツールを使ってコメントを元に取扱説明書を生成し
オブジェクトファイル等の成果物に同梱する
コピーライト等の利用者に読ませたい情報の一般的な展開方法です
参考)
https://ja.wikipedia.org/wiki/Doxygen
No.6
- 回答日時:
コメントアウトした場所ではないですが、コメントアウトした内容のオブジェクトファイルへの埋め込みは、以下の方法で可能では?
コンパイル時の最適化で取り除かれてしまわないように、
呼び出さない関数を定義してそこに
char * 型の変数を用意して、そこに
コメントアウトしたい内容を記した文字列定数を代入して、
print文で出力
すれば、可能かと。
No.5
- 回答日時:
まず、コメントアウトというのは、「a = 1;」のようなコードにコメント記号を付けて「/* a = 1; */」にというコメントに変更するという「動作」「編集作業」を指しますので、動作を残すのは不可能です。
そうじゃなくて、おそらく、「コメント」の意味でお使いかと思います。
コメントを残すのは不可能ですが、オブジェクトコードに文字列を残すのは、プログラム冒頭に、グローバル変数として下記のように書けば出来ます。
char copyright[]="This is a pen. I am a boy.";
もしかすると最適化度合いを高めると省かれてしまうかも知れませんのでコンパイル後に確認しましょう(過去にはバージョン管理のために使われていたので、おそらく大丈夫だと思いますが)。また、コンパイラーによっては「使われない変数」という警告が出るかも知れませんが、無視。
No.3
- 回答日時:
コンパイル、ソースコード、オブジェクト の意味がお分かりか?
オブジェクトにコメントを入れるなんて 容量が大きくなって動作が遅くなるのでやらないほうがいいです。その代わり、ソースにはコメントを入れましょう。
No.2
- 回答日時:
規格では, 処理のかなり初期の段階で「注釈を空白 1個に置き換える」という操作をしている. そして, 規格に従う処理系では (実際の挙動はどうであれ) 「そのような操作をしているかのよう」に振る舞うことが求められる. 従って, 「規格に従う処理系を使う」限りは不可能 (そもそも規格には「オブジェクトファイル」なるものは存在しなかったような気もする).
もちろん実際のあらゆる処理系が「常に厳格に規格に従う」というわけではないので, なんらかのオプション指定をすればできるような処理系があるかもしれない. 私は知らないけど.
文字列リテラルを使っちゃダメなの?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) vba コンパイル 4 2022/10/27 10:01
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
- C言語・C++・C# エラー: ‘inval’ の記憶サイズが不明です。 union semun inival; というエ 2 2023/01/16 22:04
- Java dokojavaのコンパイルについて 1 2022/10/06 18:42
- JavaScript 初心者です。gulpでコンパイルができないので教えてください! 1 2023/05/17 17:07
- C言語・C++・C# プログラム Arduino 1 2022/07/03 11:13
- PostgreSQL PostgreSQL14.6のSSL対応について 1 2023/01/05 15:42
- その他(ブラウザ) iPhone SEです。 ソースからコンパイルする方法ってどうすればいいのですか。教えてくださると嬉 3 2022/10/02 08:08
- C言語・C++・C# 参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++ 3 2022/12/22 01:49
- C言語・C++・C# ExcelCS 1 2023/01/27 19:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
math.hに含まれる関数が使えない
-
ビープ音が鳴りません・・・
-
C言語で作ったらWindowsでもMac...
-
cygwin1.dll を必要としないCの...
-
Verilog_HDLでのdefineとifdef
-
実行ファイルが作成環境以外のP...
-
VC++6.0をコマンドプロンプ...
-
vba コンパイル
-
Cygwinでのコンパイルができま...
-
c言語です コンパイルした時に...
-
シリアル通信の受信待ちについて
-
実行後にコンパイルに失敗しま...
-
Cソースをexeにコンパイルする
-
C#で char型とstring型の比較で...
-
PIC16F1827の変数の最大値
-
i386 or x86_64 のどちらを選...
-
Cのソースを毎回コンパイルし...
-
arduinoのエラーメッセージ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アプリケーションのDLLファイル...
-
<unistd.h>をVisualStudioでつ...
-
共有ライブラリの内容確認について
-
すべてのリビルド: 0 正常、 0 ...
-
C言語で作ったらWindowsでもMac...
-
64ビットのlinuxで32ビットメモ...
-
gcc バージョン違いによるコン...
-
[COBOL] ソースの復帰
-
C#で char型とstring型の比較で...
-
gccでc++プログラムをコンパイ...
-
実行後にコンパイルに失敗しま...
-
ビープ音が鳴りません・・・
-
シリアル通信の受信待ちについて
-
VB ネイティブコンパイルについて
-
Cygwinで使用しているgccをダウ...
-
同じEXE・同じファイルで解析結...
-
math.hに含まれる関数が使えない
-
Verilog_HDLでのdefineとifdef
-
プレコンパイルの意味を教えて...
-
#If True Then の # って何??
おすすめ情報