C言語をやりたいんですが

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2007/12/23(日) 02:35:09
まずなにやったらいいの?
2009/05/08(金) 20:41:22
make(1/3)

たくさんソースファイル尾つくって、毎回それを全部コンパイルするのは無駄だ。
変更したソースだけをコンパイルすれば効率がいい

dmc a.c b.c c.c

この場合a.c b.c c.cがコンパイルされa.obj,b.obj,c.objが作られる。

-------MAKEFILE---------
SEX : a.c b.c c.c
(tab)dmc a.c b.c c.c
---------------------------

MAKEFILEというファイル名で
(tab)はTAB1こ。

これをmakeすると…
2009/05/10(日) 00:32:08
>>177-178

void rev(char *x,char*m, short s)
{
long bin=0;
long sm=strlen(x);
m[sm]=0;
for(;bin<sm;bin+=2){
m[bin]=x[sm-bin-2];
m[bin+1]=x[sm-bin-1];
}
}
main(){
char sex[] = "あーセックスしてー";
static char manko[64];
rev(sex,manko, 2);
puts(manko);
}
181 ◆nullpop./c
垢版 |
2009/05/10(日) 00:46:00
/*
ライブラリ関数[1]
ファイル関係は以下のようにする
*/
#include <stdio.h>
typedef struct {
FILE *sex;
char sex2p[801];
FILE *(*open)(const char *n,const char*m);
int (*close)(FILE*);
char *(*gets)(char*,int n,FILE*);
} SEX_IO_VER;

SEX_IO_VER sit = {NULL,"sex",fopen,fclose,fgets};

main(int argc, char **argv)
{
static int line;
sit.sex = sit.open(argv[1], "r");
while (sit.gets(sit.sex2p,800,sit.sex)) printf("line%4d -- %s",line++,sit.sex2p);
sit.close(sit.sex);
}
2009/05/10(日) 17:20:57
C言語は実際にみてみればいいですねwこの前sakuyawwwっていうやつと知恵袋で書き込みしあったので見てみてください。
メモリには1バイト(8ビット)づつ番地が割り振られている。
1番地=1バイト=8ビット=256通りの情報
100番地に154を置くということは、100番地のメモリを10011010にするということ。
このことをある言葉で書いてみてください。
ある言葉はCですねw
Cで書いてみると
size of char = 1 バイト
size of short = 2 バイト
size of int = 4 バイト
size of unsigned int = 4 バイト
size of float = 4 バイト
size of double = 8 バイト
size of long double = 12 バイト
size of size_t = 4 バイト
これでおkですw
2009/05/10(日) 17:22:31

ハッキングとクラッキングの違いについて、ハッカーは絶対に自分からハッキングしません。クラッカーどもはしますがね!

ハッカーは日本に何人いるか?については、具体的には分かりませんが、大体数百人ぐらいですね・・・自分がしっている人数でも、50人ぐらいしか知りません。

001b7 f2 0f 2c d3 cvttsd2si edx, xmm3はなんですか?について、自分が今まででそういうソフトは知りません。もしかしたら全然関係ないものかもしれないし、もしかしたら、本当に関係があるかもしれません。

ハッキングは防ぐことができますか?について、ここではハッキングではないので、後からは「クラッキング」と称します。
クラッカーはまあよほど物好きでなかったら、一般の人のPCやセキリュティに進入しません。まあ、一応クラッキングされたとして、
一応どんなPCにも独特のセキリュティが入っています。しかし、どんなセキリュティも30分ほどしか持たないといわれています。
なので、セキリュティへの進入を感知すると、しっかりしたPCだと警告がでるので、すぐにわかります。すると自動的にシャットダウンするなど色々な動作でクラッキングを防ぐ行動をします。

ハッキングのやり方は

自分のPC・セキリュティへの進入を感知→相手のプロダクトID(プロダクトキーでも可)→相手のセキリュティの突破・破壊(別に破壊しなくてもいいですが、したい場合はしちゃってください!)→後は自分の好きなようにする。

一応クラッキングについても教えますね。 まあ、専門ではないので間違っている場合があります。

相手のプロダクトID(IPアドレスがあればもっと簡単になります。)→相手のセキリュティの突破(破壊は絶対にしないでください。すぐにばれます。)→後は自分の好きなようにする。


まあ、すんごく、超簡単に言ってみるとこんな感じですね。

PCにアクセスとは何?については
多少間違っていますね。アクセスはハッキング(クラッキング)半分合っていて半分間違っています。自分のPCから相手のPCへのアクセスは相手も同意しているのが絶対です。それ以前にばれています。
あと、この回答は質問に答えただけなので、ベストアンサーにはしなくてもいいです。
184 ◆nullpop./c
垢版 |
2009/05/11(月) 21:49:51
>>182-183
ネタなのかマジなのかわからんが。。。。。

int,unsigned intはコンパイラ依存(2byte,4byteどちらか)

001b7 f2 0f 2c d3 cvttsd2si edx, xmm3
左が機械語、右が対応するアセンブリ言語

2009/05/13(水) 13:41:04
>>182
>メモリには1バイト(8ビット)づつ番地が割り振られている。
×
そうとは限らない。
>1番地=1バイト=8ビット=256通りの情報
×
そうとは限らない。
186 ◆nullpop./c
垢版 |
2009/05/23(土) 09:29:12
演算子(1/5)

Cは演算子がおっぱいある
優先順位と結合規則について説明しよう

優先順位が高いものから演算されます
s+e*xのときにe*xをしてそれにsを足すといったようになる

優先順位が同じものが複数有る場合、結合規則が適用される
a+u+m-s+h
+-は結合規則が左から右になっているから
((a+u)+m)... というように演算される

187 ◆nullpop./c
垢版 |
2009/05/23(土) 09:31:52
演算子(2/5)
配列の[]は注意が必要だ



sex[nakadasi]
これは
*(sex+nakadasi)
に変換される

だからa[5]と5[a]は同等だ

188 ◆nullpop./c
垢版 |
2009/05/23(土) 09:34:06
演算子(3/5)

sizeof演算子は2つの使い方がある


main(){
short sex;
printf("%d"
"-----"
"%d"
,
sizeof(long),
sizeof sex);

}
189 ◆nullpop./c
垢版 |
2009/06/06(土) 14:40:30
質問ある???
2009/06/06(土) 16:41:34
>>187
うぉ、すげっ。
191デフォルトの名無しさん
垢版 |
2009/06/09(火) 01:05:57
何かボタンを押したら・・・みないたのをやりたいんだけど
scanf()だとEnter押さなきゃ入ってくれないじゃない?
どうすればEnter以外のボタンでもキー入力を取得できるの?
2009/06/09(火) 01:16:26
標準のCライブラリでは無理。
処理系依存では、kbhit とかあるけど、最近のウィンドウズでも使えるんだっけ?
2009/06/10(水) 04:21:51
VCだと_kbhitが一応用意されてるな
使った事ないけど
2009/09/10(木) 09:21:42
ほらよ!!!

#include <windows.h>
#include <conio.h>
#include <stdio.h>

void main(){
printf("Z か A ");
getch();
if( GetKeyState( 0x5A ) & 0x80 ){MessageBox( 0, "test" , "ぜっとー。。" , 0);}
if( GetKeyState( 0x41 ) & 0x80 ){MessageBox( 0, "test" , "えーぼたんー" , 0);}

}
195 ◆nullpop./c
垢版 |
2009/09/10(木) 19:13:43
>>194
まず、Cの基礎的な知識を勉強したほうが、いい。
2009/09/11(金) 03:33:51
e6.oHu1j.o でググると、しょうもないもんばっかり出てくるよ
2009/09/11(金) 09:04:19
トリ付きの98%はゴミ
198 ◆nullpop./c
垢版 |
2009/09/13(日) 18:29:20
>>194修正

#include <windows.h>
#include <conio.h>
#include <stdio.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm")
static char messagetable[][100] = {"エラーです", "ぜっとー。。", "えーぼたんー", };
void PrintMessage(int i){
HWND hwnd;
int table_id = 0;
hwnd = GetForegroundWindow();
if( GetKeyState( 'Z' ) & 0x80 ) table_id = 1;
if( GetKeyState( 'A' ) & 0x80 ) table_id = 2;
if(table_id !=0) {
MessageBox( hwnd, "test" , messagetable[table_id] , MB_ABORTRETRYIGNORE);
} else {
MCI_OPEN_PARMS mop;
mop.lpstrDeviceType = "cdaudio";
mciSendCommand((DWORD_PTR)NULL, MCI_OPEN, MCI_OPEN_TYPE, (DWORD_PTR)&mop);
mciSendCommand(mop.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, (DWORD_PTR)NULL);
}
}

int main(void){
int i;
printf("Z か A ");
i = getch();
PrintMessage(i);
return EXIT_SUCCESS;
}
199デフォルトの名無しさん
垢版 |
2009/09/14(月) 19:59:25
適切なスレがあったら是非誘導お願いします。

C言語用の、データ構造やアルゴリズムのライブラリってありませんか?
C++ならばSTLやBoostがありますが、Cのためのそれらのようなものを探しています。
できればそれなりにユーザーもいて開発も続いているものが...
200 ◆nullpop./c
垢版 |
2009/09/14(月) 20:35:09
>>199
http://oku.edu.mie-u.ac.jp/~okumura/algo/
2009/09/15(火) 07:54:09
>>200
ありがとうございます。
確かに良いとは思うんですが、
できればLinuxなどでバイナリが配布されている程度に
メジャーでユーザー層が厚いものが・・・
2009/09/15(火) 22:36:28
>>200
つ[Numerical Recipies]
2009/09/15(火) 22:37:43
202s/200/201/
204デフォルトの名無しさん
垢版 |
2009/09/17(木) 22:47:59
入門書を・・・・買えばいいと思うよ
2009/09/19(土) 20:40:59
>>196(≧▽≦)
206デフォルトの名無しさん
垢版 |
2009/09/23(水) 20:17:28
C 言語を少し遣りたいのですが レス 返せる方居りますか?
207デフォルトの名無しさん
垢版 |
2009/09/23(水) 20:26:43
初歩的な質問で申し訳ないのですが?
決まった言語で在れば compiler は分かるのですが
C 言語での compiler と云うのが思い当たらないのです…
C 言語で compiler 処理はどの様に処理結果を出せば良いのでしょうか?
レス が無かったら悲しく クグル 事にします…
2009/09/23(水) 20:27:46
おりますが、C言語は少しやった程度でどうにかなるようなものではありません
本人の適性や学習ペースや目的にもよるものの、数ヶ月くらいは覚悟しましょう
2009/09/23(水) 20:30:15
>>207
日本語でおk

OSは何をお使いで?
210デフォルトの名無しさん
垢版 |
2009/09/23(水) 20:31:55
>>209
OS X です
211デフォルトの名無しさん
垢版 |
2009/09/23(水) 20:33:41
>>209
gcc 系統の install はして居ります
212デフォルトの名無しさん
垢版 |
2009/09/23(水) 20:40:11
これだけで終わるのでしょうか…
2009/09/23(水) 20:42:01
>>210
ターミナルを起動して
gcc filename.c
のように打てば、その filename.c がコンパイルされて a.out という実行ファイルが出来るので、
./a.out
と打てば実行される
214デフォルトの名無しさん
垢版 |
2009/09/23(水) 20:50:23
>>209
以前は Linux でしたが?
多様性を考え Mac に移行した訳です…
個人で調べた結果 BSD 系程は command の充実は在りませんが?
自宅で BSD server を構築するのは
server 管理者の cost も負わなくては成らないので Mac と云う事です
215デフォルトの名無しさん
垢版 |
2009/09/23(水) 20:55:38
>>213
助かります
処理結果をだすと云う表明的な文献を目にしないので…
216デフォルトの名無しさん
垢版 |
2009/09/23(水) 21:06:43
>>213
取り敢えず C source の例は少し在るので
compile 処理結果を読める様になる事から始めます
また お願いします
2009/09/24(木) 23:55:39
お前ゲームプログラムスレにいたキチガイだろwww
2009/09/29(火) 11:24:04
>以前は Linux でしたが?
>個人で調べた結果 BSD 系程は command の充実は在りませんが?

何で質問しているの? 自分のことも判らないほど馬鹿なの?
2009/10/01(木) 12:00:21
>>218
>>207 からそうなのに今更かつアンカーなしでそこ突っ込むとか
お前も大概だな。
2009/10/01(木) 13:42:50
>>219
連休だったんだろ。
221 ◆nullpop./c
垢版 |
2010/05/03(月) 20:06:36
int i = 10;
int * p = &i;//int型ポインタpにiのアドレスを代入する
簡単。
char str1[] = "abcde";
char * str2 = "abcde";
上と下は同じでどっちを使ってもいい。
222 ◆nullpop./c
垢版 |
2010/05/03(月) 20:10:42
証明

int _cdecl main(void){
char str1[] = "abcde";
char * str2 = "abcde";

puts(str1);puts(str2);//abcdeabcde
if (strlen(str1) ==strlen(str2)) puts("str1 str2 is same!"):
str2=str1;
printf("%c", 2[str2]);//c
return 0;
}
2010/05/03(月) 23:35:03
>>221-222
ネタ?
224 ◆nullpop./c
垢版 |
2010/05/03(月) 23:39:41
マジにネタレスご苦労
2010/05/04(火) 00:47:59
> char str1[] = "abcde";
> char * str2 = "abcde";
> 上と下は同じでどっちを使ってもいい。

以下の実行結果を検証してみること。

int main(){
char str1[] = "abcde";
char * str2 = "abcde";
printf("%d\n", sizeof(str1));
printf("%d\n", sizeof(str2));
return 0;
}
2010/05/04(火) 04:09:32
>>225
カッコつけてんじゃねーよド素人。
2010/05/04(火) 04:37:15
>>226
括弧つけてはいけないという法は無い
228 ◆nullpop./c
垢版 |
2010/05/04(火) 05:47:29
>>227
爆笑、お前面白すぎ、
エンタに出てる芸人以上じゃね?
久々にわらかしてもらったわw
2010/05/04(火) 06:25:53
>>222
>printf("%c", 2[str2]);//c

なんでインデックスと配列識別子が逆なんだ…
2010/05/04(火) 06:40:27
>>229
x[i] は *(x + i) のシンタックスシュガーなので、逆に書いても問題ない。
が、それを本当に逆に書くのは素人がやりがちな、稚拙な遊び。
玄人はやらない。
2010/05/04(火) 07:03:36
MOVE.L D0,2(A0)
こんな形に近くて美しく見えなくもない。
2010/05/04(火) 08:18:42
アセンブラじゃなくてC言語をやりたいんですが
2010/05/04(火) 13:25:18
はい
2010/05/04(火) 16:26:42
はい
2010/05/04(火) 23:44:37
>>230
dくす。ポインタ操作ですな
勉強になりました。感謝
236デフォルトの名無しさん
垢版 |
2010/06/02(水) 17:54:13
教えてください。

gccで画面に直線描くのはどうやるのですか。

私は、今春定年退職した暇人で、c言語入門者です。

よろしくお願いします。
2010/06/02(水) 18:38:59
環境による
共通のやり方は無い
2010/06/02(水) 19:06:32
>>226
亀レスになるが俺もカッコ付けてるわ

型名と識別子のどちらでもコンパイル通るから何も考えなくていい
239デフォルトの名無しさん
垢版 |
2010/06/03(木) 08:28:30
>>237
ありがとうございます。
簡単には出来ないようで、初心者には無理ですね。
別のC言語をあたってみます。

2010/06/03(木) 13:29:17
括弧つけたほうが視認性が上がると思ってる場合は無駄でもつけてる
三項演算子とかreturnとか
2010/06/03(木) 14:20:17
returnに括弧って、タイプミスしたときに別名の関数と誤認されるからしないほうがいいって言われた。
2010/06/03(木) 15:12:23
sizeof() は誤認されないか?
2010/06/03(木) 15:16:32
sizeof も基本はいらないけど、どうしても必要な場合が多いからなあ
244デフォルトの名無しさん
垢版 |
2010/08/26(木) 16:58:39
C言語がしたいです……
ttp://img.mag2.com/editor/taiatari/080625/no2_m1_larg.jpg
2010/08/26(木) 20:33:05
sizeof の括弧は要る場合の方が多いだろ
246デフォルトの名無しさん
垢版 |
2010/09/05(日) 03:40:34
皆さんこんにちわ!C言語初心者です。よろしくお願いします。いきなりの質問で
すみません!C言語標準ライブラリィ関数を例題を示して説明している本は何かあり
ますか?教えてください。
2010/09/06(月) 23:58:20
>>246
辞書的な本があったとは思うのだけど、例文が余り適切ではなかった記憶が。
暇と金があれば書かないでもないのだけれど、どこぞの出版社が乗ってくれんもんかのう。
2010/09/16(木) 03:24:55
標準ライブラリすべてを網羅しているとなると、H&Sしかないのでは?
というか、K&Rで不満なら、H&Sしかないような気がする。
あとはもう少し分野を特定してくれれば、適切な本があるかも。
2010/11/26(金) 13:20:22
C言語ならオレに聞けPart74 こちらに引っ越しました。
250デフォルトの名無しさん
垢版 |
2011/01/23(日) 19:37:49
すいません。コンパイルしようと思ったらvcvers32が外部と内部で実行できません。って
出てきたんですけど・・・・どうすればいいんですか?

2011/01/24(月) 08:13:50
諦める
252 ◆nullpop./c
垢版 |
2011/01/27(木) 20:01:49
誰か構ってくれ〜     ゚∩              :ノノ ゚                し′
   ,,------ 、      ノノ              ∪           ∩
  /: ____▽,,,,,,_ヽ    。:∪・      ⊂ヽ                  ノノ           :∩
  } i:ェェヮi ト.ェェ:-i { /⌒Y⌒\  プ   :):)                 じ           :ノノ 。
  ヾ::/イ__l丶 r'1ノ   ノ     )     じ         :∩ 。                ( (
  .}::l: ゝ--イ l:: {^\ビチグソ |        .       ヽヽ                  ヽj
   ト!;_`二´_,,;!イ|  |    ノ  :|         ∩      じ
   |  |__三___|  |_/|   |         ノノ                 ∩           :∩
   |  |      ヽ|  ト'   |   |/^ヽ     じ                 :ノノ ∵         :ヽヽ
   |  |         |  |_/ ヽ__人_ノ                       ∪             し′
  ⊆, っ      とーっ
253 ◆nullpop./c
垢版 |
2011/05/03(火) 18:33:18.02
コンパイラ(1/4)
コンパイラは最適化をかけることができ
-O1 -O2 -O3などでその意味あ変える。

-O1 速度
-O2 最適
-O3 強すぎ

最適化はループ内定数の外し
計算の定数化
無駄な関数の削除
を行う
2011/07/03(日) 08:27:15.54
2011年になっても未だにJAVA使い続けてる奴ってさ
仕事で仕方なくならわかるけど

家でもJAVAやってるなら本当にバカだよね。哀れ


死ねゴミ
255 ◆nullpop./c
垢版 |
2011/07/03(日) 22:54:55.93

言語厨って哀れだな
2011/07/11(月) 12:48:19.74
JavaScriptをやってる奴も市ねゴミなんだな
2011/11/19(土) 20:48:51.10
"0123456789abcdef"[ index ]
はたまにやる
2012/06/26(火) 10:04:34.66
>>254
うっせー

ks
2012/08/27(月) 04:24:38.98
#define ARRAY_SIZE 8
#include <stdio.h>

int main(int argc, char *argv[])
{
  char a;
  int mask, i;
  int c[ARRAY_SIZE] = {128, 64, 32, 16, 8, 4, 2, 1};

  switch(argc) {
  case 2:
    a = *argv[1];
    printf("%02Xh\n", a);
    break;
  default:
    fprintf(stderr, "bits a\n");
    exit(0);
  }

  for(i = 0; i < ARRAY_SIZE; i++) {
    mask = c[i];
    if( (a & mask) == mask ) {
      printf("1");
    } else {
      printf("0");
    }
  }

  return 0;
}
2012/08/27(月) 04:32:43.10
>>259
#include <stdlib.h>を追加
2012/09/05(水) 06:18:48.16
D:\work>bits "&"
26h
00100110
2013/07/17(水) NY:AN:NY.AN
char a[6];
a[i]のアドレスは、a + i
a[i]
 ↓ 
*( a + i )

char a[6][6];
a[i][j]のアドレスは、*( a + i ) + j
a[i][j]
  ↓ 
*( a[i] + j )
  ↓ 
*( *(a + i) + j )
2013/07/18(木) NY:AN:NY.AN
j[i[a]]
2014/03/09(日) 22:36:32.65
Downloads: approx. 900kb
Auto C 3.6.58 Current version
Version 3.6.58 - February 25, 2014:
http://autoc.wolosoft.com/verhist.html
2014/05/10(土) 11:15:02.11ID:ejXJmmlt
#include <stdio.h>
int main(void)
{
    typedef int * INT_POINTER;
    INT_POINTER a, b;
    int m, n;
    a = &m;
    b = &n;
    *a = 2;
    *b = 1000;
    printf("%d\n%d\n", m, n);
    return 0;
}
2015/02/24(火) 12:04:44.91ID:B4atg286
「C MAGAZINEのバックナンバーが電子書籍として販売開始された模様(AmazonのKindleストア」

C MAGAZINEのバックナンバーの電子版、1冊80円で提供開始 | スラッシュドット・ジャパン デベロッパー
http://developers.slashdot.jp/story/14/06/26/0425238/
2014年06月26日 14時34分
2015/03/09(月) 20:12:49.16ID:YsuhcNZs
#define BINARY_1 1
#define BINARY_10 2
#define BINARY_100 4
#define BINARY_1000 8
#include <stdio.h>
int main(void)
{
  const int SHIFT_COUNT = 31;
  int count, i, msb;
  int e = 0x00000001;
  int test = BINARY_10 | BINARY_100 | BINARY_1000; /* 00001110b */

  for(i = 0; i < SHIFT_COUNT; i++) {
    e <<= 1;
  }

  for(count = 0, i = 0; i < SHIFT_COUNT; i++) {
    if(test & e) {
      count += 1;
    }
    test <<= 1;
  }

  printf("%d\n", count);
  return 0;
}
/*
C:\work>shiftand
3
*/
2015/03/09(月) 21:26:16.39ID:YsuhcNZs
いろいろまちがえた
2015/03/09(月) 21:27:25.50ID:YsuhcNZs
#define BINARY_1 1
#define BINARY_10 2
#define BINARY_100 4
#define BINARY_1000 8
#include <stdio.h>
int main(void)
{
  const int SHIFT_COUNT = 31;
  int count, i;
  int e = 0x00000001;
  int test = BINARY_1 | BINARY_1000; /* 00001001b */
  for(i = 0; i < SHIFT_COUNT; i++) {
    e <<= 1;
  }

  for(count = 0, i = 0; i < SHIFT_COUNT + 1; i++) { /* 32 */
    if(test & e) {
      count += 1;
    }
    test <<= 1;
  }

  printf("%d\n", count);
  return 0;
}
/*
C:\work>shiftand
2
*/
2015/03/10(火) 01:42:09.98ID:MZ8Gg0aD
31ビットならできた
2015/03/10(火) 01:43:28.66ID:MZ8Gg0aD
#define BINARY_1 1
#define BINARY_10 2
#define BINARY_100 4
#define BINARY_1000 8
#include <stdio.h>
int main(void)
{
  const int SHIFT_COUNT = 30;
  int count, i, e = 0x00000001;
  int test = BINARY_1 | BINARY_100 | BINARY_1000; /* 00001101b */
  int repetition = SHIFT_COUNT + 1;
  for(i = 0; i < SHIFT_COUNT; i++) {
    e <<= 1;
  }

  if(e < 0) {
    printf("e = %d\n", e);
    return 1;
  }

  for(count = 0, i = 0; i < repetition; i++) {
    if(test & e) {
      count += 1;
    }
    e >>= 1;
  }

  printf("%d\n", count);
  return 0;
}
2015/03/12(木) 05:32:20.41ID:rxquKj4G
/* >>267 */
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
  char *stop;
  const int BIT_COUNT = 31;
  int count, i;
  const int e = (int)strtol("01000000000000000000000000000000b", &stop, 2);
  int test = (int)strtol("00000000000000000000000000001110b", &stop, 2);

  for(count = 0, i = 0; i < BIT_COUNT; i++) {
    if(test & e) {
      count += 1;
    }

    test <<= 1;
  }

  printf("%d\n", count);
  return 0;
}

/*
C:\work>shiftand
3
*/
2015/06/20(土) 05:51:34.80ID:yI5o7iEC
いまだに原理わかってません^^
size_t count_bits_32( unsigned _int32 val )
{
val = ( 0x55555555 & val ) + ( 0x55555555 & ( val >> 001 ) );
val = ( 0x33333333 & val ) + ( 0x33333333 & ( val >> 002 ) );
val = ( 0x0f0f0f0f & val ) + ( 0x0f0f0f0f & ( val >> 004 ) );
val = ( 0x00ff00ff & val ) + ( 0x00ff00ff & ( val >> 010 ) );
val = ( 0x0000ffff & val ) + ( 0x0000ffff & ( val >> 020 ) );

return ( size_t )val;
}
2016/10/13(木) 11:47:21.02ID:mw9SJIVD
#define WHAT_NUMBER 9821 /* 0010011001011101b or 265Dh */
#define WHICH_BIT 4
#define MASK_SIZE 32
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
 char *stop;
 int MASK[MASK_SIZE];
 int b = 1;
 int bit = WHICH_BIT;
 int k = 0;
 int n = WHAT_NUMBER;

 MASK[k] = b;
 for(k = 1; k < MASK_SIZE; k++) {
  b = 2 * b;
  MASK[k] = b;
 }

 if(argc == 2) {
  bit = (int)strtol(argv[1], &stop, 10);
 }

 b = n & MASK[bit];
 b = b == MASK[bit] ? 1 : 0;
 printf(
2016/10/13(木) 11:49:18.05ID:mw9SJIVD
C:\work>bits2 6
b = 1

C:\work>bits2 7
b = 0

C:\work>bits2 8
b = 0

C:\work>bits2 9
b = 1

C:\work>bits2 10
b = 1

C:\work>bits2 11
b = 0

C:\work>bits2 12
b = 0

C:\work>bits2 13
b = 1

C:\work>bits2 14
b = 0

C:\work>bits2 15
b = 0
2016/11/14(月) 13:59:06.14ID:qs04J1oz
#define BUFFER_SIZE 128
#include <stdio.h>
#include <string.h>
typedef struct INT_CHAR INT_CHAR;
struct INT_CHAR {
    int n;
    char c[BUFFER_SIZE];
};

INT_CHAR function(void) {
    INT_CHAR ic;
    strcpy(ic.c, "messages");
    ic.n = strlen(ic.c);
    return ic;
}

int main(void)
{
    INT_CHAR s;
    s = function();
    printf(\"%s (%d)\n\", s.c, s.n);
    return 0;
}
2016/11/23(水) 10:59:32.83ID:8cJNovPT
/* boolfunc.c */
#include <stdio.h>
#include <stdlib.h>
typedef int (*INT_FUNCTION)(int);
int one_three(int n) {return (n + 1)%3;}
int two(int n) {return n%2;}
int nine(int n) {return n%9 > 0 ? 0 : 1;}

int main(int argc, char *argv[]) {
    char *p;
    int k;
    int n = 23;
    int r = 1;
    INT_FUNCTION func[4];

    if(argc == 2) n = (int)strtol(argv[1], &p, 10); /* C:\work\boolfunc 9 */
    func[1] = one_three;
    func[2] = two;
    func[3] = nine;
    for(k = 1; k <= 3; k++) {
        if( func[k](n) == 0 ) {
            r = 0;
            break;
        }
    }

    if(r) puts(
2016/11/23(水) 11:05:35.80ID:8cJNovPT
/* boolfunc.c */
#include <stdio.h>
#include <stdlib.h>
typedef int (*INT_FUNCTION)(int);
int one_three(int n) {return (n + 1)%3;}
int two(int n) {return n%2;}
int nine(int n) {return n%9 > 0 ? 0 : 1;}

int main(int argc, char *argv[]) {
    char *p;
    char c[4];
    int k;
    int n = 23;
    int r = 1;
    INT_FUNCTION func[4];
    if(argc == 2) n = (int)strtol(argv[1], &p, 10); /* C:\work\boolfunc 9 */
    func[1] = one_three;
    func[2] = two;
    func[3] = nine;
    for(k = 1; k <= 3; k++) {
        if( func[k](n) == 0 ) {
            r = 0;
            break;
        }
    }
    if(r) strcpy(c, "OK");
    else strcpy(c, "END");
    puts(c);
    return 0;
}
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況