[過去ログ] スレを勃てるまでもないC/C++の質問はここで 21 (1001レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
16(4): 2012/07/24(火)13:20 AAS
質問ですが
__int64 bit;
//setbit = 1ull << i;
setbit = 0;
_bittestandset64(&setbit,i);
のアセンブリコード出力が
lea rcx, QWORD PTR setbit$87411[rsp]
mov QWORD PTR setbit$87411[rsp], 0
bts QWORD PTR [rcx], rax
mov rcx, QWORD PTR setbit$87411[rsp]
となるんだが
xor ecx, ecx
bts rcx, rax
となるようなソースコードを教えていただけませんか?
環境はVC2010、ターゲットCPUはSandy Bridgeです。
またiは0〜63の整数です。
放置するかアセンブラで書くしかないのかな
47(3): 2012/10/04(木)21:27 AAS
C言語の勉強をしているのですが、タイマーを使ったプログラムの仕組みというか概念がよくわかりません。
抽象的な質問で申し訳ないですが、わかりやすく説明して頂けないでしょうか。
85(3): 82 2013/02/04(月)00:49 AAS
みなさん、レス感謝します。
ちなみに自分がやっているのは、if条件の一部を一時的に殺してテスト
…
if( /* a>b && */ c>d ) {
if( /* e>f && */ g>h ) {
if( /* i>j || */ k>l ) {
…
さらにこのif前後の処理ブロックをまとめて一時的にコメント・アウトしてテストするってことです。
行頭//は使えますが、まとめる行数が多いので、入れ子状態で大域を/* */で括れると便利なこと
この上ないんです。
でもありがとうございました。
97(3): 2013/02/05(火)21:02 AAS
その例は「コメントが閉じられていない」と正しく解析できると思うけど
116(3): 2013/02/06(水)10:58 AAS
>>110
規格上は問題なくて、単にコンパイラの不備だとおもう
ソースを読み終えた時点で「/*」に対する「*/」が見つからなければ、除算演算子とポインタ演算子の組み合わせって判断できるからね
つまり何重の入れ子コメントになっていても、一番外側の「/*」「*/」ペアが成立する限り
その中身を読み飛ばせばいいだけ。入れ子コメントの実装は可能
ちなみに入れ子コメントに意味があるか、を問題にするのはナンセンス
正しく構文が解釈できる限り、プログラマに対する制限は緩い方向(自由度が高い方向)へ仕様設計すべきだからね
メモリーやディスク容量、コンパイル時間等によって制限されるなら仕方ないと言えるが
170(4): 2013/02/14(木)17:37 AAS
ありがとうございます
unsigned int (__stdcall *sum)(void*)
としたらいけました
でもなんか今まで書いた事のない書き方なので気持ち悪いです
もっとスマートな書き方は無さそうですし慣れるしかないんでしょうか
UINT (WINAPI *sum)(VOID*)
これくらいでしょうか
229(3): 2013/03/05(火)18:37 AAS
印刷設定の用紙サイズを変更するAPIがあったら教えてください
変更したらOS上で変更しない限り永続させたいです
お願いしますm(__)m
257(4): 2013/03/31(日)01:19 AAS
C言語初めて、2ヶ月程度の初心者です。
free関数に関する質問です、よろしくおねがいします。
free関数は、どうやって、どこまでのメモリを解放するか判定しているのでしょうか?
free関数にわたすのは、先頭のポインタですよね。終了点はどこから情報を得ているのでしょうか。
int* px;
px = (int *)malloc(sizeof(int) * 10);
という感じで、メモリを動的に確保した後に、
free(px);
で普通に解放。
しかし、ためしに、
px++; /*してから*/
free(px);
解放してみると、派手にエラーを吐いたので、
実行時の解放中に気づいた?ようです。
px++;
px--;
free(px);
だと正しく解放したようです。
よろしくおねがいします。
282(3): 2013/04/03(水)22:04 AAS
ptrが指してるものがなにか別のポインタを持っていて、
それを先にfreeしてからptrをfreeするという手順を取るというときに
すでにptrがfreeされたものが与えられてしまってもぬるぽにならないように。
307(4): 2013/04/07(日)12:50 AAS
ファイルから読み込むと普通は文字列になるんだけど、一旦intに変換してさらにenumにするの?
389(3): 2013/05/05(日)13:18 AAS
ROMと言えば。。。 (  ̄ー ̄)y-~~
「ROMだってランダムアクセスできるんだから、そういう意味ではRAMじゃないの?」
とのたまう、素直で内気な少年でした… 今から○十年前の話です。
401(3): 2013/05/08(水)20:15 AAS
つまりだな
識別子(?)として「RED」「GREEN」「BLUE」を使いたい。割り当てられる値はどうでもいいって時に
#define RED 1
#define GREEN 2
#define BLUE 3
とするより、
enum color { RED , GREEN , BLUE };
した方がいいか、って質問だろ?
答えはYES。
使い方によるがenumなら値の妥当性チェックをしてくれるから。
436(3): 2013/05/12(日)23:50 AAS
AA省
474(3): 2013/05/18(土)14:16 AAS
上記への追加です。
デバッグビルドしました場合は、キャッシュされず、毎回最新のタイムスタンプが
取得できるのですが、リリースビルドしました場合にはキャッシュされた値しか
取得できないという状況です。
547(4): 2013/05/28(火)12:51 AAS
カプセル化は望ましいといわれます。
すると実務ではメンバ変数なら全てカプセル化するもんなのでしょうか?
カプセル化はメンバ一つにつき2つアクセスのためのメソッド(読みと書き)を書く必要があり、めんどくさいんですが
616(3): 2013/06/11(火)03:03 AAS
いっそ int2, int4, int8, int16 ってすればいいのに
将来 int3, int7が出てきても大丈夫w
704(4): 2013/10/25(金)04:07 AAS
外部リンク:sourceforge.jp
これのエラーの原因が分かりません
761(3): 2013/12/21(土)20:57 AAS
やはりwchar_tの情報は少ないな。
本にはおまけ程度にwchar_t型を書いてるくらいで、具体的なサンプルコードまで説明
してるものを見たことがないし、C++ Builder 5のヘルプファイルもwchar_t対応版の
関数名を書いてるくらいで具体的なサンプルコードはないし、Visual Studio .NET 2003
のMSDNも同様だな。ネットも情報が少ないし。
やっぱりCやC++でUnicodeの入出力とかする人は少ないんかいな。
VB.NetやC#.NetかJavaとかで作ったほうがいいんかいな。
797(3): 2014/01/08(水)01:47 AAS
プロに教えてほしいんでつけど、
なんで例外ってあるんでつかねぇ?
Cのときには無くてもやっていけたじゃないでつか?(´・ω・`)
935(3): 2014/04/23(水)23:57 ID:8aJ+1hBq(1) AAS
C++はCより難しいですか?
980(3): 2014/05/11(日)16:45 ID:bK9D/oLg(1/2) AAS
FAQかもしれませんが、ググっても良く分りませんでした。
二次元配列を引数に持つ関数を作りたい場合、
以下のような感じにしたいのですが、これではエラーします。
最もお勧めの書き方を教えてください。
int func1(int **array, int rows, int cols)
{
int sum = 0;
for (int r = 0; r<rows; r++){
for (int c = 0; c<cols; c++){
sum += array[r][c];
}
}
return sum;
}
int _tmain(int argc, _TCHAR* argv[])
{
const int rows = 5;
const int cols = 3;
int array[rows][cols];
for (int r = 0; r<rows; r++){
for (int c = 0; c<cols; c++){
array[r][c] = r * 10 + c;
}
}
sum = func1(array, rows, cols);
printf("sum=%d\n", sum);
return 0;
}
985(3): ◆QZaw55cn4c 2014/05/11(日)22:27 ID:VWJDXhYj(1) AAS
>>980
可変長な二次元の配列をそのまま渡すことはできない、C99 でも。
malloc() か alloca() を使うのが定番だと思う
alloca() 版:外部リンク:ideone.com
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.067s