トップページ > プログラム > 2014年07月13日 > SsDCNXiH

書き込み順位&時間帯一覧

16 位/220 ID中時間01234567891011121314151617181920212223Total
書き込み数4000000000110000000000006



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
スレを勃てるまでもないC/C++の質問はここで 22

書き込みレス一覧

スレを勃てるまでもないC/C++の質問はここで 22
301 :デフォルトの名無しさん[sage]:2014/07/13(日) 00:04:12.05 ID:SsDCNXiH
visual studio だと、これで行けるんですが。何でかな?
#include "stdafx.h"
#define dbgprintf 1 ? (void)0 : (void) //(1)
int func(){
  return 1;
}

int _tmain(int argc, _TCHAR* argv[]){
  dbgprintf("%d", func());
  return 0;
}
スレを勃てるまでもないC/C++の質問はここで 22
303 :デフォルトの名無しさん[sage]:2014/07/13(日) 00:07:03.38 ID:SsDCNXiH
↑のは間違いでした。↓こっちでも行ける理由が分りません。
それが知りたいのですが。

#include "stdafx.h"
#define dbgprintf
int func(){
  return 1;
}

int _tmain(int argc, _TCHAR* argv[]){
  dbgprintf("%d", func());
  return 0;
}
スレを勃てるまでもないC/C++の質問はここで 22
306 :デフォルトの名無しさん[sage]:2014/07/13(日) 00:11:43.83 ID:SsDCNXiH
>>304
なるほど。そうすると、funcの戻り値はどうなるんですか?
("%d", func());

("1");
になって、この後どうなるんですか?
スレを勃てるまでもないC/C++の質問はここで 22
307 :デフォルトの名無しさん[sage]:2014/07/13(日) 00:15:05.28 ID:SsDCNXiH
>>305
int _tmain(int argc, _TCHAR* argv[]){
  ("1");
  return 0;
}
で動きました。 ("1"); の行は、実行に影響ないんでしょうか?
スレを勃てるまでもないC/C++の質問はここで 22
317 :デフォルトの名無しさん[sage]:2014/07/13(日) 10:39:54.60 ID:SsDCNXiH
カンマ演算子ググッようやくdbgprintfマクロの挙動わかりました。
有難うございました。
マクロ勉強中で、もう一つ教えてください。こんなマクロ見つけたのですが、
#define eqstr(a, b) (*(a) == *(b) && strcmp(a, b) == 0)
文字列が等しいかどうか調べるだけなら、
#define eqstr(a, b) (strcmp(a, b) == 0)
でいいと思うのですが、*(a) == *(b)は何ですか?
スレを勃てるまでもないC/C++の質問はここで 22
319 :デフォルトの名無しさん[sage]:2014/07/13(日) 11:04:10.62 ID:SsDCNXiH
その時は、例えば
char a[]="1234";
char b[]="234";
とすると、
eqstr(a+1,b)は
strcmp(a+1, b)==0で
strcmp("234","234")==0で
等しいと判断されると思います。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。