
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
プレコンパイルの意味を教えて...
-
メッセージボックスのEXEを作る...
-
VS2010環境で2点ほど質問
-
64ビットのlinuxで32ビットメモ...
-
#If VBA7 Thenに関して
-
すべてのリビルド: 0 正常、 0 ...
-
[COBOL] ソースの復帰
-
AdobeReader8.0の機能を使って...
-
Makefileでのコンパイル方法
-
C言語で作ったらWindowsでもMac...
-
NASMとMASMの違い
-
ANSIエスケープシーケンスの色表示
-
ビープ音が鳴りません・・・
-
-fopenmpのコンパイルが通らな...
-
自作DLLの中身を暗号化
-
math.hに含まれる関数が使えない
-
gcc バージョン違いによるコン...
-
C#で char型とstring型の比較で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
実行後にコンパイルに失敗しま...
-
[COBOL] ソースの復帰
-
math.hに含まれる関数が使えない
-
共有ライブラリの内容確認について
-
ビープ音が鳴りません・・・
-
c言語です コンパイルした時に...
-
C#で char型とstring型の比較で...
-
64ビットのlinuxで32ビットメモ...
-
C言語で作ったらWindowsでもMac...
-
すべてのリビルド: 0 正常、 0 ...
-
「インクルードファイル 'pthre...
-
<math.h>ヘッダを入力している...
-
vba コンパイル
-
gccでc++プログラムをコンパイ...
-
Fortran77 (intel fortran)
-
別々に作ったプログラムを繋げたい
-
プレコンパイルの意味を教えて...
-
fatal error LNK1112
おすすめ情報