自作関数の引数が何を意味するのが分かりにくいのでコメントを書こうと思ったのですが
, /*Angle*/PI/8*i );
のように書くと見にくいので
, 'Angle'PI/8*i );
のように書いて「'」を
#define ' /*/
でコメントに置換しようと思ったんですが
「/*」の部分で注釈と認識されて無理でした・・
この処理を実現する方法は無いでしょうか?
「'」で囲んだ部分が無くなれば良いんですが・・
あと「'」は今回のプログラムでは使わないと思うし
「'」じゃないと色が変わらなくて目立たないので
なるべく「'」でお願いします
環境はDXライブラリです
#define 疑似命令が上手く行かない
Re:#define 疑似命令が上手く行かない
> , /*Angle*/PI/8*i );
>
> のように書くと見にくいので
>
> , 'Angle'PI/8*i );
>
> のように書いて「'」を
引数の並びの中にコメントを埋め込もうとすると、
いずれにしても見にくくなりませんか?
ところで、そういう策を講じようとする前の話として、
そのプログラムは正しく動いているのですよね?
>
> のように書くと見にくいので
>
> , 'Angle'PI/8*i );
>
> のように書いて「'」を
引数の並びの中にコメントを埋め込もうとすると、
いずれにしても見にくくなりませんか?
ところで、そういう策を講じようとする前の話として、
そのプログラムは正しく動いているのですよね?
Re:#define 疑似命令が上手く行かない
もし実現できたとしても、見づらいと思いますよ。
素直に、引数ごとに改行したりするなど、他の自分なりの工夫をしたほうがいいと思います。
そもそも、シングルクォーテーションは文字定数で使いますし。
#かぶりました・・・。
素直に、引数ごとに改行したりするなど、他の自分なりの工夫をしたほうがいいと思います。
そもそも、シングルクォーテーションは文字定数で使いますし。
#かぶりました・・・。
Re:#define 疑似命令が上手く行かない
自分はテンプレ作ってこのような感じで書いてます。
自己流ですが、一例として。
自己流ですが、一例として。
/*============================================ 関数名:AngleCalc 機能:起点から目標点の角度(ラジアン)を計算する 返り値:double型 ラジアンの角度 第一引数:double型 起点xの座標 第二引数:double型 起点yの座標 第三引数:double型 目標点のx座標 第四引数:double型 目標点のy座標 ============================================*/ double AngleCalc( double base_x , double base_y , double target_x double target_y ) { }
Re:#define 疑似命令が上手く行かない
>この処理を実現する方法は無いでしょうか
'Angle'PI/8*i な方法で実現する方法はありません。
但し、文字数が限られてもいいなら、もしくは 'ではなく "でもよければ
少し記法は変わりますが無くはないです。
[color=#d0d0ff" face="monospace]
void disp1(int angle)
{
printf("angle = %d\n", angle);
}
void disp2(int angle, float speed)
{
printf("angle = %d\n", angle);
printf("speed = %f\n", speed);
}
{ // 使うとき
disp1(('R', 5));
disp1(("意味のないコメント", 30));
disp2(("とりあえず 0にしとこう", 0), ("Speed", 12.f));
}
[/color]
お勧めは全くできませんが。
>自作関数の引数が何を意味するのが分かりにくいので
わかりにくければ、引数に式を書いて1行で済まそうとせず、
値を変数にして名前をつければいいだけです。
[color=#d0d0ff" face="monospace]
double angle = PI/8*i;
hoge(angle);
[/color]
これなら明確に hoge関数の引数は何かの角度であることは解るはずです。
ここでは angleとしましたが、回転角度なら rotate_angle とか
具体的な名前をつければ、もっと解りやすくなるはずです。
Re:#define 疑似命令が上手く行かない
C/C++の範囲で実現することはできませんので、お勧めする訳ではないですが、sedやm4などを前処理に使えば、希望通りのことが実現できるかと思います。