いきちがいのぷろぐらむあ
PG雑記/assert系マクロ関係のメモ
の編集・凍結
(
https://www.6809.net/tenk/?PG%e9%9b%91%e8%a8%98%2fassert%e7%b3%bb%e3%83%9e%e3%82%af%e3%83%ad%e9%96%a2%e4%bf%82%e3%81%ae%e3%83%a1%e3%83%a2%09%e3%81%ae%e7%b7%a8%e9%9b%86%e3%83%bb%e5%87%8d%e7%b5%90
)
[
トップ
] [
一覧
|
検索
|
最終更新
]
□
[
readme
] [
雑記
] [
PROG
] [
倉庫
]
ページを凍結するにはパスワードが必要です。
B
I
U
D
H
[[]]
<br>
--
管理者パスワード:
-- 雛形とするページ --
#RecentChanges
C言語機能の比較
C言語機能テスト結果1
C言語機能テスト結果2
C言語機能テスト結果3
FrontPage
GNU General Public License
GNU 一般公衆利用許諾書 (GNU General Public License)
HeaderMenu
InterWikiName
InterWikiSandBox
MenuBar
PG雑記
PG雑記/Cコンパイラ・オプション・メモ
PG雑記/SubMenu
PG雑記/Uncrustifyのオプション
PG雑記/assert系マクロ関係のメモ
PG雑記/pyukiwikiメモ
PG雑記/pyukiwikiメモ/2006-02-19
PG雑記/pyukiwikiメモ/2006-02-20
PG雑記/pyukiwikiメモ/2006-02-21
PG雑記/pyukiwikiメモ/2006-02-22
PG雑記/pyukiwikiメモ/2006-02-23
PG雑記/pyukiwikiメモ/2006-02-24
PG雑記/pyukiwikiメモ/2006-02-25
PG雑記/pyukiwikiメモ/2006-02-26
PG雑記/pyukiwikiメモ/2006-03-16
PG雑記/pyukiwikiメモ/2006-03-17
PG雑記/pyukiwikiメモ/2006-03-18
PG雑記/pyukiwikiメモ/2006-03-19
PG雑記/pyukiwikiメモ/2006-03-22
PG雑記/pyukiwikiメモ/SubMenu
SandBox
SubMenu
The "Artistic License"
The Artistic License 日本語訳 1.0
cl_test_src
lcc メモ
readme
ruig
test
サブルーチン
ヘルプ
倉庫
倉庫/C関係
倉庫/SubMenu
倉庫/hidemaru
倉庫/pyukiwiki
倉庫/グラフィック関係
倉庫/一般
倉庫/開発
掲示板
整形ルール
雑記
雑記/2005
雑記/2005-06-12
雑記/2005-06-19
雑記/2006
雑記/2006-02-08
雑記/2006-02-11
雑記/2006-02-12
雑記/2006-02-13
雑記/2006-02-26
雑記/2006-03-12
雑記/2006-03-13
雑記/2006-03-20
雑記/2006-03-21
雑記/2006-03-30
雑記/2006-11-05
雑記/2006-11-06
雑記/2006-11-11
雑記/2007
雑記/2007-04-28
雑記/2007-08-26
雑記/2008
雑記/2008-01-01
雑記/2008-05-24
雑記/2008-10-01
雑記/2008-10-02
雑記/2008-10-03
雑記/2008-10-04
雑記/2008-10-05
雑記/2008-10-11
雑記/2008-11-03
雑記/2008-11-04
雑記/2009
雑記/2009-11-02
雑記/2009-11-20
雑記/2009-11-23
雑記/2009-11-26
雑記/2009-12-02
雑記/2009-12-04
雑記/2009-12-09
雑記/2009-12-10
雑記/2009-12-12
雑記/2009-12-15
雑記/2009-12-17
雑記/2009-12-18
雑記/2009-12-20
雑記/2009-12-24
雑記/2010
雑記/2010-01-11
雑記/2010-01-26
雑記/2010-02-04
雑記/2010-02-05
雑記/2010-02-13
雑記/2010-03-09
雑記/2010-03-12
雑記/2010-03-13
雑記/2010-03-14
雑記/2010-03-15
雑記/2010-03-20
雑記/2010-03-21
雑記/2011
雑記/2011-01-01
雑記/2011-01-06
雑記/2011-11-11
雑記/2012
雑記/2012-02-29
雑記/2012-06-03
雑記/2012-10-27
雑記/2012-12-12
雑記/2012-12-14
雑記/2013
雑記/2013-05-19
雑記/2013-05-20
雑記/2013-05-21
雑記/2013-05-26
雑記/2013-06-16
雑記/2013-09-22
雑記/2014
雑記/2014-06-20
雑記/2014-10-12
雑記/2014-10-13
雑記/2014-11-02
雑記/2014-12-14
雑記/2014-12-21
雑記/2014-12-28
雑記/2015
雑記/2015-01-01
雑記/2015-02-07
雑記/2015-04-20
雑記/2015-04-29
雑記/2015-07-05
雑記/2015-07-18
雑記/2015-08-13
雑記/2015-08-14
雑記/2015-08-15
雑記/2016
雑記/2016-02-28
雑記/2016-03-27
雑記/2016-08-03
雑記/2016-09-03
雑記/2016-11-19
雑記/2017
雑記/SubMenu
*** _&color(#0){_func_};_ C99以降対応の(あるいは一部を取り入れた)コンパイラでは _&color(#0){_func_};_ に、現在実行中の関数の名前が入っている. これを利用してデバッグ出力で、 DBG_PRINTF(("%s (%d): %s: ...\n", __FILE__, __LINE__, __func__ )); のように関数名も一緒に出力できる. ソース行数が変動することを思えば関数名がわかるのは有益なことが多いだろう. ただ vc等 C99対応を見送ったコンパイラでは _&color(#0){_func_};_ 対応していないものもあり、規格化以前からある各コンパイラの同様の機能を判別して使うことになる。 vc,gcc系では _&color(#0){_FUNCTION_};_ の名で使えるので、こちらのほうが無難かもしれない。 C++ の場合、クラス情報無しのメンバー関数名のみだったり、コンストラクタ等は簡易な名前だったり等、コンパイラによって名前がどうなるか、ばらつきが多く、紛らわしいだけで役たたずになる場合もある. なので、コンパイラを判別して使う手間や、出力文字数(レイアウト)、等鑑みて、やっぱり関数名文字列を使わない、という選択もあるだろう.~ ※関数名だけの _&color(#0){_func_};_,_&color(#0){_FUNCTION_};_ とは別に関数定義を文字列化した名前を別途用意しているコンパイラもある。g++ だと _&color(#0){_PRETTY_FUNCTION_};_、 vcだと _&color(#0){_FUNCSIG_};_ 。(ついでに vc では_&color(#0){_FUNCDNAME_};_ でマングル化された名前文字列になる模様) なお、_&color(#0){_func_};_ はプリプロセッサの文字列でなくコンパイラ側が用意する文字列なのでマクロで連結等はできない.~ (※ gcc の _&color(#0){_FUNCTION_};_ は c99確定以前の一時期(v2.9?台)は連結可能だったかもしれない) ---- (このネタ関係のソースとして [[dbg.h>http://www.6809.net/tenk/html/sbr/dbg.h.html]] [[(zip)>http://www.6809.net/tenk/html/sbr/dbg.zip]] ) ---- 2011-07 static_assert関係を再再修正… やっぱりCだと定義内容が同じでも同名のtypedefは何度でもできなかった(c++ およびvc拡張だった). 間抜けすぎでした。~ 2013-06 vcでは _&color(#0){_func_};_ に対応していなかったことを追記. 普段は使わないか辻褄合わせしていたようで失念していました. [追加修正] _&color(#0){_FUNCDNAME_};_ は _&color(#0){_func_};_ と同じでなくマングル化された名前だった.
凍結する
凍結しない
タイムスタンプを更新
テキスト整形のルールを表示する
[
凍結
|
差分
|
添付
|
リロード
] [
新規
|
ヘルプ
]
Last-modified: 2013-06-16(日)