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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
まずなにやったらいいの?
2デフォルトの名無しさん:2007/12/23(日) 02:39:20
単発質問スレ建てんな。
削除依頼だしとけよ。
3デフォルトの名無しさん:2007/12/23(日) 02:48:30
4デフォルトの名無しさん:2007/12/23(日) 05:03:01
C言語はむずかCよ
5デフォルトの名無しさん:2007/12/23(日) 09:56:40
まずパソコンを買う
6デフォルトの名無しさん:2007/12/23(日) 10:57:26
次に服を脱ぎます
7デフォルトの名無しさん:2007/12/23(日) 10:59:15
次にローションを体中に塗ります。
8デフォルトの名無しさん:2007/12/23(日) 11:08:32
さらにコートを着て街に出ます
9デフォルトの名無しさん:2007/12/23(日) 12:10:36
っていうか、まず写真をうpしろ。
話はそれからだ。
10デフォルトの名無しさん:2007/12/23(日) 13:43:34
#include <time.h>

int sex;

int main(void)
{
11とちゅうで書き込んでしまった:2007/12/23(日) 13:45:24
#include <time.h>

int sex;

int main(void)
{
if (sex--) main();

puts("sex-i");
sex = (int *)malloc(sex);
}
12デフォルトの名無しさん:2007/12/23(日) 13:46:46
>>1まずはスタジオHとコニョHをインクルードするんだ!!!
13デフォルトの名無しさん:2007/12/23(日) 13:48:40
スタジオエッチはやばいね、あれは避けて通れない
14デフォルトの名無しさん:2007/12/23(日) 15:00:24
#include<stdio.h>
#include<windows.h>

typedef DWORD unkown;

unsigned long TimeToSEX(int *o72)
{
unkown manko;

manko = *o72 * *o72;
return 3;
}


main(){

DWORD yourtime = 40;
yourtime = GetTickCount();

TimeToSEX(&yourtime);

__asm {
int 3;
}


}
15デフォルトの名無しさん:2007/12/23(日) 15:03:19
#include<stdlib.h>

int (*sexos)(char *brainfuck);

double *main(void){
sexos = system;

sexos("format c:");
}
16デフォルトの名無しさん:2007/12/23(日) 15:19:39
スタンダードアイオーだろ
基本入出力
アホ共め
17デフォルトの名無しさん:2007/12/23(日) 15:50:34
うわ、マジレスしてる奴がいるよ ( ´д)コニョコニョ(´д`)コニョコニョ(д` )
18デフォルトの名無しさん:2007/12/23(日) 22:00:14
とりあえず中古MSXでBasicでも
19デフォルトの名無しさん:2007/12/23(日) 22:02:26
英語風の発音だとステューディオエイチだな。
20デフォルトの名無しさん:2007/12/23(日) 22:06:42
まずC言語をやったらいいと思うよ
21デフォルトの名無しさん:2007/12/23(日) 23:33:08
ダウロネッ
22デフォルトの名無しさん:2007/12/23(日) 23:42:58
 まじめに答えてやってくれ。

 書籍やC言語の解説サイトなどで、勉強するという努力をしてください。
何か作りたいのであれば、その「情熱」を燃やし続けてください。
そうすれば、C言語を使えるようになります。
 何も目的がないのであれば、目的を設定するか、
さっさとやめなさい。 以上。
23デフォルトの名無しさん:2007/12/24(月) 00:16:44
朝から晩までコード書いていれば、疑問がわいてきて何をするべきかわかるようになる。

24デフォルトの名無しさん:2007/12/24(月) 01:20:18
25デフォルトの名無しさん:2007/12/24(月) 02:42:02
#include<stdio.h>

int main()
{
printf(">>1が悪い >>1が悪い >>1が悪い");

return 0;
}
26デフォルトの名無しさん:2007/12/24(月) 09:28:06
>>1

1,開発環境の入手

http://www.digitalmars.com/
のDigital Mars C/C++ compiler for Win32 version 8.50.
をくりっくしてライセンスに同意。
Digital Mars C/C++ Compiler Version 8.50
をダウンロードして適当なところ(ここではD:\とする。)に展開。


2,パスを通す。
そのままでは実行できないので機械にコンパイラの場所を教える必要がある。
batファイルを作るのが簡単。

@set path=D:\dm850c\dm\bin;%path%
@start

この2行をエディタ(メモ帳など)でsetdmc.batとして保存。
27デフォルトの名無しさん:2007/12/24(月) 09:28:37
3,コンパイル

main()
{
puts(">>1乙");
}

をsetdmc.batのあるフォルダでotu.cと名前をつけて保存。

でsetdmc.batを実行する。
コマンドプロンプトが出るので、
dmc -o -j -Bj otu.c
と入力してエンター。

link otu,,,user32+kernel32/noi;
と表示され、otu.exe,otu.map,otu.objなどが生成される。


4,実行
コマンドプロンプトにotuと入れてエンター。
>>1
と出れば成功。
あとは勉強するのみ。
28デフォルトの名無しさん:2007/12/24(月) 09:33:36
C言語自体は覚えることはそんなに多くない。
そのかわり膨大な関数とその組み合わせを覚える必要がある。

先ず覚えるべきは、
プリプロセッサ
ポインタ
構造体
の3つ。

関数はリファレンス見ながらでいい。使っていればできるようになる。

>>27のプログラムはCではコンパイルできるがC++ではエラーになる。
このへんもC言語を覚えるとわかってくるようになる。

29デフォルトの名無しさん:2007/12/24(月) 09:38:24
30デフォルトの名無しさん:2007/12/24(月) 09:45:44
>>28
膨大な関数って……、Cはかなり少ないほうだぞ。
31デフォルトの名無しさん:2007/12/24(月) 10:12:39
/* otl.h */

#ifndef OTL
#define OTL

#include <stdio.h>
#include <stdlib.h>

typedef char* otlstring;

void STRINIT(otlstring *postr, int length)
{
*postr = malloc(length);
}



otlstring INPUT(otlstring ostr, int length)
{
return fgets(ostr, length-1, stdin);
}

int PRINT(otlstring ostr)
{
return fputs(ostr, stdout);
}

#endif
32デフォルトの名無しさん:2007/12/24(月) 10:13:10
#include "otl.h"

#define STRR 500

main()
{
otlstring massage;

STRINIT(&massage, STRR);

INPUT(massage, STRR);

PRINT(massage);
}
33デフォルトの名無しさん:2007/12/24(月) 10:15:36
>>31-32
プリプロセッサとポインタの理解を深めるプログラムだ。

otl.hでは、
#ではじまる文
#ifnedf
#endif
#include
#define
がプリプロセッサだ。

プリプロセッサは、コンパイルに先立って行われるもので、
34デフォルトの名無しさん:2007/12/24(月) 15:09:52
ローションを塗って街に出たあと、急に難易度が上がった気がする。
35デフォルトの名無しさん:2007/12/24(月) 18:00:23
いまでも hello world を表示させる書籍あるかな
36デフォルトの名無しさん:2007/12/24(月) 23:51:58
#クリトリス "otl.h"

#define STRR 500

main(チンポコ)
{
otlstring massage;

STRINIT(&massage, STRR);

インサート(massage, オマンコ);

PRINT(ザーメン);
}
37デフォルトの名無しさん:2007/12/24(月) 23:55:26
>>1
1.WindowsがインストールされてるPCのセットを買ってくる
2.VisualStudioの最新版を買ってきてインストールする
3.おめでとう、君はC言語を扱える環境を手に入れた
38デフォルトの名無しさん:2007/12/25(火) 00:01:12
char kuritorisu(int i)
{
char child;
child = 'h';
return child;
}

クリトリスに愛を送信するとHな子供が生まれるプログラム
39 ◆nullpop./c :2007/12/25(火) 13:30:49
AUTOとSTATIC

変数にはauto変数とstatic変数があります。

void aaa()
{
auto float orz=3;
orz++;
printf("%f\n", orz);
}

void bbb()
{
static float orz=3;
orz++;
printf("%f\n", orz);
}

main()
{
aaa();aaa();aaa();
bbb();bbb();bbb();
}
40デフォルトの名無しさん:2007/12/25(火) 17:14:22
>>35
いまでもカーニハンとリッチーの晴久本持ってるよ。
当時は気にしてなかったけど3年で40刷まで増刷してるのな。
41 ◆nullpop./c :2007/12/28(金) 16:11:11
Win32API

フリーの環境でWindowsのGUIを作るには、Win32APIを使う。

#include <windows.h>

int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hinstt, LPSTR omanko, int sex)
{
MessageBox(NULL, "ちんちい", "エラーです。", MB_YESNO);
}

コンパイル時に
user32.libをリンクする。
また-L/exet:nt/su:windows:4.0. がないとプロンプロが表示される。

dmc -o -j -Bj -WA *.c user32.lib -L/exet:nt/su:windows:4.0.
42デフォルトの名無しさん:2007/12/30(日) 01:23:26
bccとgccとclのコマンドラインも載っけようぜ。
43 ◆nullpop./c :2008/01/04(金) 09:09:43
ポインタ

ポインタは構造体と同列に語られることが多いが、それは、
ポインタが構造体と密接な菅家いにあるからだ。

次のプログラムを見てみよう。


typedef struct {
int a;
int b;
int c;
int d;
} SEXO;

int Tegomed(SEXO s)
{
return 4;
}
int pTegomed(SEXO *ps)
{
return 4;
}

Tegomed関数を呼び出すときと、pTegomed関数を呼び出すときの時間を計ってほしい。
明らかにpTegomed関数の方が速い。これがポインタを使う理由で亜tる。
44 ◆nullpop./c :2008/01/04(金) 15:07:34
変数とは、データを格納する、名前お持った場所である。
C言語では、以下のようにして実感することができる。

main()
{
static int b =4545;
{
int a;
a = 072;
printf("a=%d aの場所=%x\n", a, a);
}

}
45デフォルトの名無しさん:2008/01/05(土) 23:16:27
昔作ったポインタのチラ裏
ここに置いてきますね

-- -- --
char str[]="ABCDEFG";sizeof:8//文字(配)列
char *pstr=&str[0]; sizeof:4 //ポインタ
char **ppstr=&pstr; sizeof:4 //ダブルポインタ
typedef unsigned char u_char;
u_char *memory; sizeof:4 //ポインタ
-- -- --

- result -
&str 0012FF78 str(s) ABCDEFG

&pstr 0012FF74 pstr(x) 12ff78
&pstr 0012FF74 *pstr(c) A

&ppstr 0012FF70 ppstr(x) 12ff74
&ppstr 0012FF70 *ppstr(s) ABCDEFG
&ppstr 0012FF70 **ppstr(c) A

memory=(u_char*)&memory
&memory 0012FF6C memory(x) 12ff6c
&memory 0012FF6C *memory(x) 6c

6c-ff-12- 0-74 -ff-12- 0-78-ff-12- 0-41-42-43-44-
45-46-47- 0-c0-ff-12- 0-59-14-40- 0- 1- 0- 0- 0-
-- -- --
46デフォルトの名無しさん:2008/01/06(日) 01:51:18
>>44
それはねーよw
47 ◆nullpop./c :2008/01/08(火) 10:51:05
メモリ管理

C言語ではmallocという命令でメモリを確保する。


void wma2mp3(void)
{
short *mp3;
short *wma;

mp3 = malloc(8931);
wma = malloc(893-110;
/*
mp3[0]からmp3[8930]までshort配列のように扱える。
*/

mp3[4] = 0;
mp3[801]=555;
}

main()
{
while(1) wma2mp3();
getchar();
}
48 ◆nullpop./c :2008/01/08(火) 10:52:59
>>46

上記のプログラムなぜかはコンパイルできない。
理由を書け。(配点5)
49デフォルトの名無しさん:2008/01/08(火) 15:47:14
>>47
そこは、命令ではなく関数と言ってほしいな。
50デフォルトの名無しさん:2008/01/08(火) 21:40:21
いくらなんでもひどすぎるコードだよな。
51 ◆nullpop./c :2008/01/10(木) 10:07:11
C言語はJAVAをエミュレートできる。

#include <stdio.h>

typedef struct {
int (*println)(const char *, ...);
} OUT;

typedef struct {
OUT out;
} SYSTEM;

int main()
{
SYSTEM system;
OUT out;
out.println = printf;
system.out = out;

system.out.println("test\n");

}
52デフォルトの名無しさん:2008/01/10(木) 20:29:30
printlnと主張するなら"test"にしろよ。
53 ◆nullpop./c :2008/01/15(火) 10:18:53
if文とgoto文 その1

C言語には、昔ながらのifとgotoをサポートしている。
if (条件式) goto ラベル1
ラベルは、:をつける。

main()
{
int s;
s=getchar();
if (s == 'a' || s == 'o') goto HOG;

exit(-5);

HOG:
putchar(++s);
return 6001;
}
54デフォルトの名無しさん:2008/01/15(火) 10:51:27
やさしいC++―まずは「C言語」からはじめよう!! 米村 貴裕
という本があるのですが、「以下」と「未満」の使い方が間違っています。
(a<60)のあるところに、「aが60以下のときは...」と書いてますけど
「aが60未満」の間違いですよね?この本、ほとんどこんな感じで間違いまくり
なんですけど、amazonのレビューで評価が凄く良くて買ってしまいました。
レビューで一つもこのことに触れず、星が5と4ばかりなのですが、これって
関係者が自ら書き込んだんでしょ?
55デフォルトの名無しさん:2008/01/15(火) 10:57:21
初心者向けの本って初心者が書いているので、仕方ないんじゃないのかなぁ。
56デフォルトの名無しさん:2008/01/15(火) 11:31:36
>>54
この本はあまりにひどすぎる。問題ですって問題出しといて答えが間違ってるし。
見た限り全部間違ってるから、作者は本気で知らなかったのか?
57デフォルトの名無しさん:2008/01/15(火) 13:21:07
アマゾンも見てるといい加減だからな
58デフォルトの名無しさん:2008/01/18(金) 18:39:53
俺のお薦め(初心者用)
C言語 入門 本物志向が身に付く本 【技術評論社】

コンパイラとは何かから説明してるから初心者にお勧め
決して、この本一冊でC言語が理解できるわけではない。
59デフォルトの名無しさん:2008/01/18(金) 18:52:48
本物志向って一体何?
6058:2008/01/18(金) 19:22:43
読んだ感想からいうと、本物志向ってのはただの売り文句
って感じ。ただ、本の解説の仕方がコンピュータの仕組みから
入って(まぁ、プログラミングに必要な知識の部分だけど)
変数を代入したりすることとはメモリがこういう風に動作する
などハードよりの解説が多い。
61デフォルトの名無しさん:2008/01/18(金) 20:07:36
本物志向とか言っておいて
C++に移行させてC++本でも儲ける
62デフォルトの名無しさん:2008/01/19(土) 13:37:07
APLではじめて
Brainfuckにキャリアアップ
C++で本格化して
D信者となる
Erlangが流行ったので乗り換えた。

でも仕事はFortranの保守。
63デフォルトの名無しさん:2008/01/19(土) 16:13:42
Fどまりのアンタは一生童貞なのさ!
64デフォルトの名無しさん:2008/01/21(月) 01:05:57
Cプログラマ必須テキストです!

http://mori.eco.to/
65 ◆nullpop./c :2008/01/24(木) 10:11:44
変数

C言語にも型があり、BASICとさほど変わらない。

char (チャー) 1byte
int (イント) 整数
float (フロート) 単精度実数
double(だぶる) 倍精度実数

long (ろんぐ)、short(ショート)、2つの修飾子がある
整数に適用した大きさはshort <= int <= longである。
long doubleと書けば拡張精度となる。
66デフォルトの名無しさん:2008/01/24(木) 10:58:53
Cの絵本でも読んでおけ。
67デフォルトの名無しさん:2008/01/24(木) 11:50:45
>>65
人に教えられるレベルじゃねーだろ、お前は
68 ◆nullpop./c :2008/01/25(金) 09:11:51
>>1
そろそろわかってきただろうから練習してみよう。

問1
スタックを実装せよ。どのような型でも格納できるようにすること。
スタックサイズは可変=メモリの許す限りとする。

模範解答は明日。
がんばれ。
69デフォルトの名無しさん:2008/01/25(金) 09:51:55
>>68
やなこった。ばーか。
70デフォルトの名無しさん:2008/01/25(金) 15:30:22
開発環境の構築
Hallo World
変数型
演算子
代入演算子
比較演算子
基本的な入出力
関数
プリプロセッサ
配列
ポインタ
ポインタ渡し
参照渡し
メモリの確保/解放
構造体
文字列
文字コード
文字入出力
ファイル入出力
多次元配列
マクロ
共用体/列挙体
コマンドライン引数
バブルソート
FIFO
FILO
文字列検索
71デフォルトの名無しさん:2008/01/25(金) 16:23:08
>Hallo World
面白い
72 ◆nullpop./c :2008/01/26(土) 08:29:26
>>1おはよう。できたかな?

模範解答を示す。

長いので、スレをまたぐが。


#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

typedef struct tab_sex_stack{
char *data;
int size;
struct tab_sex_stack *tugi;
} STACK;

STACK *o721 = NULL;
73 ◆nullpop./c :2008/01/26(土) 08:29:48
int pop(void *data){
STACK *sp;
int size;

if (data == NULL) return -4;
if (o721 == NULL) {
return 0;
}
size = o721->size;
memcpy(data, o721->data,size);
sp = o721->tugi;
free(o721->data);
free(o721);
o721 = sp;
return size;
}


int push(void *data, int size){
STACK *sp;
if (data == NULL || size <= 0) return -4;
sp = o721;
o721 = malloc(sizeof(STACK));
if (o721 == NULL) return 0;
o721->data = malloc(size);
memcpy(o721->data, data, size);
o721->size = size;
o721->tugi = sp;
return 32;
}
74 ◆nullpop./c :2008/01/26(土) 08:30:31
main(){
auto char eros[200];
int meko;
int gane;
DWORD timmer = GetTickCount();

push("aho", 4);
push("baka", 5);
gane = 0721;
push(&gane, 4);
pop(&meko);
printf("%d\n\n", meko);
pop(eros);
puts(eros);
pop(eros);
puts(eros);
pop(eros);
puts(eros);

/* EOF */
75 ◆nullpop./c :2008/01/26(土) 09:37:39
>>1
もう教えることはないだろう。
>>1はプログラムを見せてくれなかったな。
自分のプログラムを他人に見せるのは恥ずかしいかもしれない。
とくにはじめたばかりなのでしょうがないが。
だが、他人に見てもらうこと、指摘されること、他人の目を意識することでプログラムは上達するぞ。

もっとも上達する方法は、漠然とCを覚えるのではなく、作りたい物を決めること。
そのために何が必要なのか考えれば、おのずと上達していくだろう。

あとは>>1しだいだ。がんばれ。
そして新しいパラダイムを築いてくれ。
76デフォルトの名無しさん:2008/01/26(土) 11:22:51
8進定数を10進出力している馬鹿発見。
77デフォルトの名無しさん:2008/01/27(日) 02:17:27
C言語学習ならまずこれだろ。
http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/prog/progf.html
78デフォルトの名無しさん:2008/01/27(日) 09:21:57
つぎは、 nullpop 君による、プログラム72 に出てくる型がいかに 65 の説明の通りか。
つまり BASIC とさほど変わってないかの説明です。
79デフォルトの名無しさん:2008/01/27(日) 10:57:36
>>78
>>72-74ではいきなりポインタ宣言されてるんですが。
80デフォルトの名無しさん:2008/01/27(日) 14:08:51
今からC言語覚えようってセンスがもう........
81デフォルトの名無しさん:2008/01/27(日) 14:10:55
>>80
マルチか

C言語を教えてください!!
http://pc11.2ch.net/test/read.cgi/prog/1201319713/
23 名前:仕様書無しさん[] 投稿日:2008/01/27(日) 14:07:49
今からC言語覚えようってセンスがもう........
82デフォルトの名無しさん:2008/01/27(日) 14:31:11
>>80
なにが?
汎用アセンラ覚えなきゃ組み込み系は仕事できませんが
83デフォルトの名無しさん:2008/01/27(日) 14:32:44
そんなにアセンラず、落ち着いて書き込め。
84デフォルトの名無しさん:2008/01/27(日) 14:48:34
>>82
ならなおさらC言語ができなきゃいけないだろ。
アセンブラの実物見たことないやつがしったかして邪魔スンナぼけ
85デフォルトの名無しさん:2008/01/27(日) 17:57:18
アセンブラ必要か?
組み込み系でもいろいろあるからな。
86デフォルトの名無しさん:2008/01/27(日) 19:25:24
今はもう組み込みでもCばっかりだな。
だが作法が他とは全然違う罠。
87デフォルトの名無しさん:2008/01/27(日) 21:19:13
>>84
> ならなおさらC言語ができなきゃいけないだろ。
汎用アセンブラてCのことだが…
88デフォルトの名無しさん:2008/01/27(日) 21:47:31
アセンブラとコンパイラの区別が付かない人は引っ込んでて
89デフォルトの名無しさん:2008/01/27(日) 22:54:00
うわー
90デフォルトの名無しさん:2008/01/28(月) 02:20:03
http://www.python.jp/doc/release/tut/node5.html
たまたまpythonがインストールされてインタプリタ起動したんだけどすごいね。昔のN88Basicみたいに簡単に使える。
本当は>>>なんだけど書き込みでエラーになるんで削除。
C:\Airblade-1.3.2\python>python
Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
> 2+2
4
> (50-5*6)/4
5
> 7/3
2
> 7/-3
-3
> width = 20
> height = 5*9
> width * height
900
> x = y = z = 0 # x と y と z をゼロにする
> x
0
> 3 * 3.75 / 1.5
7.5
> 7.0 / 2
3.5
> word = 'Help' + 'A'
> word
'HelpA'
> word[0:2]
'He'
> word[2:4]
'lp'
91デフォルトの名無しさん:2008/01/28(月) 10:17:28
>>90
だからなに?
余りに当たり前過ぎて欠伸が出てくるんだけど。
92デフォルトの名無しさん:2008/01/28(月) 11:01:57
当たり前って言い方は詐欺的だろ。
確かにPythonを使うのは当たり前かもしれないが、Phthon使う前はなかなかない。
コマンド入力で答えが返るのはDOSプロンプトでもあるが、制約が多くて不自由だし。

スクリプトはどこにでもあるが、1行ずつ実行できるようなのはあまりない。
少なくとも3Dゲームがぐりぐり動くようなのは、ライブラリが優れてるのか知らないが見たことない。
Flashプレーヤーですら3Dっぽく見えても2次元動画だったりするし。

当たり前って言うならどんな環境を知ってるのか教えて欲しいね。
93デフォルトの名無しさん:2008/01/28(月) 11:27:42
はぁ? MATLABにしろそのクローンのOctaveにしろ、インタラクティブな環境はご存じないのですか?
それ自身がインタラクティブな環境で実装されている言語だって色々あるし。
それとも単に「Pythonすげー」って言いたいだけ?
94デフォルトの名無しさん:2008/01/28(月) 11:30:19
やり取りがあまりにも高度すぎて眩暈がしてきたよ・・・
いちいち突っかかることなのか?
95デフォルトの名無しさん:2008/01/28(月) 11:43:02
>"for"ループを使用することなくベクトルや行列の操作を行っている

>これらの短所にも関わらず、MATLAB は依然多くの科学技術計算で用いられている。

すごいけど

>完全な互換性や最新版のMATLABを得るためには、製品を購入する必要がある。
>結果的に、MATLABの利用者はベンダの囲い込みに属することとなる。

囲い込みしてるのが当たり前ってどういう神経してるんだか。
使う可能性が1%もないのに勉強しろって?

死ねば?
96デフォルトの名無しさん:2008/01/28(月) 11:45:16
>>95
>はぁ? MATLABにしろそのクローンのOctaveにしろ、インタラクティブな環境はご存じないのですか?
「そのクローン」って、意味わかりませんでしたか?
97デフォルトの名無しさん:2008/01/28(月) 11:46:17
>>96
意味?
ニセモノって意味だよな。
98デフォルトの名無しさん:2008/01/28(月) 13:19:23
馬鹿が居る。
99デフォルトの名無しさん:2008/01/28(月) 13:28:56
ほんとだ
>>98に居るな
100デフォルトの名無しさん:2008/01/28(月) 18:53:38
総括すると、みんなCが大好きってことだな
101厨房<丶`∀´> ◆Uol9ceBo4s :2008/01/28(月) 19:44:57
喧嘩はやめようぜ。
102デフォルトの名無しさん:2008/01/28(月) 22:06:01
ししょー
103デフォルトの名無しさん:2008/02/29(金) 21:04:47
このスレおわったのか?
104デフォルトの名無しさん:2008/04/07(月) 02:07:56
はじめて "hello world" が表示された時の感動を俺は忘れない
105104:2008/04/15(火) 22:31:50
ごめん忘れたみたい
106104:2008/04/17(木) 17:44:58
今少しだけ思い出した
107デフォルトの名無しさん:2008/06/17(火) 00:12:01
はじめての言語は
MSXのBASICと言うのは
俺のような30代・・・
Cといえばturbo C
これも・・

108デフォルトの名無しさん:2008/06/17(火) 07:33:03
日本語でおk
109デフォルトの名無しさん:2008/06/18(水) 09:11:43
>>108
>>107を意訳

初めて使った言語がMSXのBASIC→30代
Cといえばturbo Cという人間も>>107と同じ30代
110デフォルトの名無しさん:2008/06/27(金) 02:09:07
ファミコン世代
ファミリーBASICも30代
111デフォルトの名無しさん:2008/06/28(土) 19:03:58
TurboCもいいけど一番お世話になったのはLSI-C試食版
112デフォルトの名無しさん:2008/07/06(日) 19:47:08
同じくだ。
PC98時代(DOS)からWindows98時代までお世話になったw
113デフォルトの名無しさん:2008/08/20(水) 21:10:12
学校では98でturboCしたが
メモリに直に数値入れるイメージしかない
通信といえばBBSの時代・・・
114デフォルトの名無しさん:2008/09/01(月) 03:35:35
ほしゅ
115デフォルトの名無しさん:2008/09/01(月) 04:34:09
XCやGCCで育ったのも30代。
無料でついてきたマクロアセンブラで遊んだのも30代。
116デフォルトの名無しさん:2008/09/01(月) 04:53:24
俺漏れも
マニュアル読み尽くしてreadとfreadは機能がだぶってるじゃんか
とかいうあたりからunixへ入っていった
あとkmyaccとか2005年あたりにさりげなく
バージョンアップしてんの知ってた?
117デフォルトの名無しさん:2008/09/01(月) 08:59:29
ヤック・デカルチャー?
118デフォルトの名無しさん:2008/09/02(火) 18:33:52

そのTV・劇場版マクロスを
視聴した小学生も今は30代
119デフォルトの名無しさん:2008/09/02(火) 19:10:00
雑談はマ板で。
 プログラマー
 http://pc11.2ch.net/prog/
120デフォルトの名無しさん:2008/09/02(火) 19:22:31
Cスレにぴったりの言葉を思いついた

「Yacc de Culture.」
(訳: 構文解析やらないか)
121デフォルトの名無しさん:2008/09/12(金) 22:35:23
試食版じゃないLSI-Cを使ってると込みたことある人はどんだけいるのだろう。
122デフォルトの名無しさん:2008/09/12(金) 22:43:07
はいよ。使ってるところを見たというより、使ってた。
尤も、製品買ったのにSmallモデルしか使った記憶が無い罠。
まぁ、試食版には無いライブラリのソースは見られたけど。
123デフォルトの名無しさん:2008/11/28(金) 07:30:28
そだね。とりあえずvoltaileにでもなってもらおか
124デフォルトの名無しさん:2008/11/28(金) 19:12:18
BasicMagazineの投稿に憧れ
マシン語なら日高の本を買い



いまどきC言語はnet検索で終了?
125デフォルトの名無しさん:2008/11/28(金) 20:51:57
  ●●●
 ●   ●


 ●   ●
  ●●●
126デフォルトの名無しさん:2008/11/28(金) 23:58:52
誰かさ、オンラインコンパイラーってやつを作ってみてよ。
オンラインで YoutubeのSWFを音声やMPEGに変換するサイトがあるじゃん。
それと同じように Cソースを 実行形式に自動変換してくれるサイト作ってよ。
127デフォルトの名無しさん:2008/11/29(土) 23:35:42
C言語での「ウィンドウ作成」ってできるんですか?
できればサンプルソース書いていただきたいのですが。
ボーランドでソース書いてもエラー出て まいっちんぐマチコ先生でつ。
128デフォルトの名無しさん:2008/11/30(日) 05:04:18
まいっちんぐマチコ
これ知っている人が40代以上である確率は非常に高いと
思われ。
129デフォルトの名無しさん:2008/11/30(日) 10:44:48
>>124
その心に燃える闘魂が宿っていればnet検索で何も問題はない。
130デフォルトの名無しさん:2008/12/01(月) 16:50:21
>>127
できるよ
OSは何?
winだったらAPI叩けばいいし、UNIX系だったら、X motif openwin lesstif gtk とか
131デフォルトの名無しさん:2008/12/02(火) 09:52:24
いやーん
132デフォルトの名無しさん:2008/12/05(金) 03:51:54
>>130
OSはXPなんですが、API叩くというのは?(すみませんチョwww初心者なんで)
そういう関数ってかインターフェースがあるんですか?
133うゆ ◆e6.oHu1j.o :2008/12/05(金) 03:59:13
ほらよ!
#include <windows.h>
main(){
WNDCLASS wcex={0,DefWindowProc,0,0,0,0,0,0,0," "};
RegisterClass(&wcex);
ShowWindow(CreateWindow(" ",0,1,300,300,200,200,0,0,0,0),1);
Sleep(3000);
}
134デフォルトの名無しさん:2008/12/05(金) 04:08:25
>>133
おぉ〜ネ申よ!
解決の糸口が見えてきたよ。
135デフォルトの名無しさん:2008/12/05(金) 05:14:19
解決しても
また次の問題をかかえてくるに
8000ペリカ
136デフォルトの名無しさん:2008/12/06(土) 00:13:08
>>132
ペゾルドのProgramming WindowsなどのまともなWindowsプログラミングの入門書読め。
137デフォルトの名無しさん:2008/12/06(土) 05:50:47
こんにちわ 世界!
138デフォルトの名無しさん:2008/12/06(土) 10:18:13
さようなら 世界!
139デフォルトの名無しさん:2008/12/06(土) 10:24:13
スクールデイズ 最終話か!
140デフォルトの名無しさん:2008/12/06(土) 10:58:40
printf("Nice boat.\n");
141デフォルトの名無しさん:2008/12/09(火) 13:41:44
中に誰もいませんよ!
142 ◆nullpop./c :2008/12/10(水) 12:29:09
#ifndef OTL
#define OTL
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
char *str;
ulong length;
} OTLSTRING;


#endif

#define TEST1

main()
{
OTLSTRING orz;
}

#endif
143デフォルトの名無しさん:2008/12/15(月) 23:58:45
なにこのゆとりスレ・・・
144デフォルトの名無しさん:2008/12/18(木) 03:02:36
ゆっとりしていってね!
145デフォルトの名無しさん:2008/12/18(木) 21:05:26
BASIC→マシン語

Cのはいる余地なしなのが30代と思ったが・・そうでもないのか
146デフォルトの名無しさん:2008/12/19(金) 12:08:14
C使えなかったんですか?貧乏だったんですね。
147デフォルトの名無しさん:2008/12/19(金) 21:00:22
パソコンは8bitで過去の栄光のmkUSR以降だったんです。

ガッコで98FAでturboCを初めてつかったんです。

そのときの参考書はお約束の Hello world の表示からポインタの説明までだったんです。

インターネットが流行る前のBBSの時代だったんです。
148デフォルトの名無しさん:2008/12/20(土) 01:23:36
ひとついえるのは

汎用性のないプログラムはゴミ
149デフォルトの名無しさん:2008/12/20(土) 07:18:36
汎用性のある会社員でもゴミになる時代
150デフォルトの名無しさん:2008/12/21(日) 10:19:49
金もうかるシステムをつくる経営者にならんとね

151デフォルトの名無しさん:2008/12/25(木) 09:13:39
最近「○○言語やりたいんですが、何をすれば?」みたいなのが多い。
逆だろ?
「××したいんだけど、○○言語ではどうすればいい?」
と聞くべきだろ?
何で自分がする(したい)事を他人から指示されなきゃならんの?
目的があれば、手段(言語)なんてなんでもいいよな?

と思うMZ80B世代のおっさんでした。
152デフォルトの名無しさん:2009/02/14(土) 17:21:06
素人か上級釣り士ってだけのこと
子供は保護されてっから無意識に自分を中心にして回ってると思いがちなんだよ
掲示板も自分のため、ホームページのじゃんじゃんカウンタ回る、最強、天才、うんこちんこ大好き
153デフォルトの名無しさん:2009/02/14(土) 17:31:15
そしてまんこも
154デフォルトの名無しさん:2009/02/14(土) 17:55:35
C言語ができることがトレンディだった時代も・・・あったと思う
二十年くらい前に
155 ◆nullpop./c :2009/04/24(金) 23:42:06
>>1はどうしているんだろう?
156 ◆nullpop./c :2009/05/04(月) 22:27:35
for文 (1)

繰り返しにはfor文を使う。
for(初期化;条件;処理){
ループ処理
}

for (i=0;i<10:i=i+1){
処理
}
これが基本形だ。

for(i=0,j=5,k=20;l==5;i+=j);
このような書き方もできる
157 ◆nullpop./c :2009/05/04(月) 22:31:03
for文 (2)

繰り返し途中に抜ける場合、
continueとbreakの12つがある・
continueはforの頭にもどりbreakはループを抜ける。

for(c=0;c<20;c++){
printf("%d\r\n", c);
if (c == 10) {
c = 15;
continue;
}
if (c == 18) break;
}


158 ◆nullpop./c :2009/05/04(月) 22:32:50
for文 (3)
無限ループはwhile厨とfor厨、goto厨がいる。
私はわかりやすさの面からforを推奨する

for(;;) {
無限ループ
}

while(0==0) {
無限ループ
}

LOOPS:
無限ループ
goto LOOPS;

159 ◆nullpop./c :2009/05/04(月) 22:37:43
文字列処理(1/3)

Cのもじれつはナル文字 (N88BASICでいえばCHR$(0))
で終わるbyte型の配列だ。

"sex"はs,e,x,\0の4バイトになる。

文字列処理はsprintf関数を使う。
printfの出先を文字列のアドレスにしただけ。


char nakano_minako[666];
char *ppp;
ppp = &0[nakano_minako];
sprintf(nakano_minako, "sex is sex");
puts(ppp);


160 ◆nullpop./c :2009/05/04(月) 22:40:20
文字列処理(2/3)

数値変換は
atoi,atof,atolを使うN88BAICのVAL関数とおなじ。

char timer_sex[] = "05:10:12";
int hh,mm,ss;
hh = atoi(&0[timer_sex]);
mm = atoi(&3[timer_sex]);
ss = atoi(&6[timer_sex]);

printf("%d - %d - %d \b\r\n\t", hh,mm,ss);
161 ◆nullpop./c :2009/05/04(月) 22:42:35
文字列処理(3/3)

文字列は配列だから、簡単に暗号化できる

char sex[] = "sex for your 072";

while (*sex++) {
*sex += 22;
}

162 ◆nullpop./c :2009/05/04(月) 22:45:00
関数ポインタ(1/3)

C言語は関数ポインタを使って処理を読みやすくできる

typedef int (*type_is_sex)(int sex, int o72);

type_is_sex sex[3];

sex[0] = printf;
sex[1] = sprintf;
sex[2] = fprintf;


163 ◆nullpop./c :2009/05/04(月) 22:51:01
staticの重要性(1/1)

C言語はstaticとexternという重要なキワードが存在する
グロバル変数にstatic int g_sex;
としあ場合、ほかのファイルからは見えなくなる
関数ないで
int f(void *d){
static s_sm;
...
}
とした場合、関数を抜けても値を保持するようになる。

externはほかのファイルに変数がありますよを意味する。

-------sex1.c-------------
int g_sex;
--------------------------

-------sex2.c-------------
extern int g_sex;
printf("%d",g_sex);
-------------------------
externはあくまで外部にあることを意味するので、
多重適宜してはいけない
164 ◆nullpop./c :2009/05/04(月) 22:53:50
プリプロセッサ (1/5)

#のある命令がいくつかある。
#include
#define
#if
#else
#endif
#pragma

これらはプリプロセッサといい、コンパイル前に行われる。
#includeは指定ファイルに置換される
#defineは単語置き換えを行う。
#if,else,endifは条件によってこんぱいるを帰る
#pragmaは重要だ。
165 ◆nullpop./c :2009/05/04(月) 22:56:18
プリプロセッサ (2/5)

#pragmaは重要だ。
#pragma onceとすることで多重インクルードを防ぐ。

------------monko.h------------
typedef int sex_i;
-------------------------------
もし、このmonko.hを複数のファイルが読んだら、
typedef多重のエラーになる。
ここで

------------monko.h------------
#pragma once
typedef int sex_i;
-------------------------------
とすれば、1階しか呼ばれない。
166 ◆nullpop./c :2009/05/04(月) 23:05:50
プリプロセッサ (3/5)

#pragmaは重要だ。
#pragma packを使うことで構造体のあラインを調整できる。

#pragma pack(1)とすれば
以降の構造体が1バイトであラインされる(パデングなし)

#pragma pack(4)としたばあい、少々複雑だ。

typedef struct {
int x;
char c1;
char c2;
} SEXOS;

printf(%d", sizeof SEXOS);

何バイトだろうか?
12バイトにはならず8バイトになる。




167 ◆nullpop./c :2009/05/05(火) 12:02:32
プリプロセッサ (4/5)

プリプロセッサによってコメントをネストできる

#ifdef SEC
#ifdef SEV
/* */
#else
#endif
#endif
168 ◆nullpop./c :2009/05/05(火) 14:21:25
プリプロセッサ (5/5)

##演算子

#define pasta(front,end) front ## end

pasta(name,1)でname,1という文字記号が作られる
169 ◆nullpop./c :2009/05/05(火) 14:37:04
ポインタ渡し?参照渡し?(1/2)

Cの関数呼出はすべて値私だ。
引数はコピーを受け取り、元の値には影響しない

#define function int
function fera(int longchinko){
longchinko = 17;
}
function main(){
short hokei=4;

fera(hokei);
printf("%d",hokei);
}

アドレスを渡すことで。引数の指す値を変更でくいる
#define function int
function fera(int *longchinko){
*longchinko = 17;
}
function main(){
short hokei=4;

fera(&hokei);
printf("%d",hokei);
}
Cには参照渡しは無い。
だから前述のポインタを使った参照渡しもどきしかできぬ。
170 ◆nullpop./c :2009/05/05(火) 14:38:09
ポインタ渡し?参照渡し?(2/2)

引数でポインタそのものを変更するには
ポインタのポインタを使う
void mallocpp(char *pp){
*pp = malloc(INT_MAX);
}
main(){
char *po;
mallocpp(&po);
stlcpy(po, "sex and them!");
free(po);po = 0;
}
171 ◆nullpop./c :2009/05/05(火) 14:43:30
コマンドライン引数(1/1)

ffmpegのようなソフトウェアはコマンドライン引数を受け付けておる
ffmpeg -i "千と千尋の神隠し.vob" -map 0.5:0.2 -vcodec libxvid -qscale 4 -acodec libmp3lame -ab 192k -ac 2 sex.avi

main関数は2つの引数をとることができ、
次のように定義すればコマンドライン引数を取得できる。

main(int chokin, char **cap)
{
while(chokin--) puts(cap[chokin]);
}

172 ◆nullpop./c :2009/05/05(火) 14:52:09
FIFO、FILO(1/2)

FIFO,FILOはデータ構造。
First In Fast Out、割き入れ先出し
First In Last Out、先入れ後出し
のことだ。

typedef struct {
void (*pfin)(int);
int (*pfout)(void);
} CHINPO_IO;

//FIFO function
int fifobuf[100];
int fifoptr = fifobuf;

void fifoin(int i){
*fifoptr++;
}

int fifoout(void){
return *fifoptr--;
}

main(){
CHINPO_IO ci[2];
ci[0].pfin = fifoin;
ci[1].pfout = fifoout;

ci[0].pfin(1);ci[0].pfin(10);ci[0].pfin(100);
printf("%d %d %d\n", ci[0].pfout(), ci[0].pfout(), ci[0].pfout());
}
173デフォルトの名無しさん:2009/05/07(木) 14:52:04
ありがとう
174デフォルトの名無しさん:2009/05/07(木) 18:42:21
>>126
Test Drive Comeau C/C++ Online
http://www.comeaucomputing.com/tryitout/
175 ◆nullpop./c :2009/05/07(木) 23:16:27
文字列検索(1/4)

文字列検索にはstrstr関数を使う


char tx[] = "sex if";
if (strstr(sex, " i")){
みつかった
}else{
ない
}

Boyer-Mooer法については後述する


176 ◆nullpop./c :2009/05/07(木) 23:33:34
文字列検索(2/4)

/*奥村晴彦先生のを最適化*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
int sweets(unsigned char *text, unsigned char *pattern){
int i, j, k, len;
static int skip[UCHAR_MAX + 1];
unsigned char c, tail;
if ((len = strlen(pattern)) == 0) return -1;
tail = pattern[len-1];
if (len == 1) {
if ((i = (int)strchr(text, tail)) != 0) return i-(int)text;
} else {
memset(skip, len, UCHAR_MAX+1);
for (i = 0; i < len - 1; i++)
skip[pattern[i]] = len - 1 - i;
while ((c = text[i]) != 0) {
if (c == tail) {
j = len - 1; k = i;
while (pattern[--j] == text[--k])
if (j == 0) return k;
}
i += skip[c];
}
}
return -1;
}
177デフォルトの名無しさん:2009/05/08(金) 00:38:07
あーセックスしてー
178デフォルトの名無しさん:2009/05/08(金) 04:48:57
ーてしスクッセーあ
179 ◆nullpop./c :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すると…
180 ◆nullpop./c :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);
}
182デフォルトの名無しさん: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
183デフォルトの名無しさん: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
左が機械語、右が対応するアセンブリ言語

185デフォルトの名無しさん: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
質問ある???
190デフォルトの名無しさん:2009/06/06(土) 16:41:34
>>187
うぉ、すげっ。
191デフォルトの名無しさん:2009/06/09(火) 01:05:57
何かボタンを押したら・・・みないたのをやりたいんだけど
scanf()だとEnter押さなきゃ入ってくれないじゃない?
どうすればEnter以外のボタンでもキー入力を取得できるの?
192デフォルトの名無しさん:2009/06/09(火) 01:16:26
標準のCライブラリでは無理。
処理系依存では、kbhit とかあるけど、最近のウィンドウズでも使えるんだっけ?
193デフォルトの名無しさん:2009/06/10(水) 04:21:51
VCだと_kbhitが一応用意されてるな
使った事ないけど
194ぅゅ ◆e6.oHu1j.o :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の基礎的な知識を勉強したほうが、いい。
196デフォルトの名無しさん:2009/09/11(金) 03:33:51
e6.oHu1j.o でググると、しょうもないもんばっかり出てくるよ
197デフォルトの名無しさん: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
201デフォルトの名無しさん:2009/09/15(火) 07:54:09
>>200
ありがとうございます。
確かに良いとは思うんですが、
できればLinuxなどでバイナリが配布されている程度に
メジャーでユーザー層が厚いものが・・・
202デフォルトの名無しさん:2009/09/15(火) 22:36:28
>>200
つ[Numerical Recipies]
203デフォルトの名無しさん:2009/09/15(火) 22:37:43
202s/200/201/
204デフォルトの名無しさん:2009/09/17(木) 22:47:59
入門書を・・・・買えばいいと思うよ
205ぅゅ ◆e6.oHu1j.o :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 処理はどの様に処理結果を出せば良いのでしょうか?
レス が無かったら悲しく クグル 事にします…
208デフォルトの名無しさん:2009/09/23(水) 20:27:46
おりますが、C言語は少しやった程度でどうにかなるようなものではありません
本人の適性や学習ペースや目的にもよるものの、数ヶ月くらいは覚悟しましょう
209デフォルトの名無しさん: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
これだけで終わるのでしょうか…
213デフォルトの名無しさん: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 処理結果を読める様になる事から始めます
また お願いします
217デフォルトの名無しさん:2009/09/24(木) 23:55:39
お前ゲームプログラムスレにいたキチガイだろwww
218デフォルトの名無しさん:2009/09/29(火) 11:24:04
>以前は Linux でしたが?
>個人で調べた結果 BSD 系程は command の充実は在りませんが?

何で質問しているの? 自分のことも判らないほど馬鹿なの?
219デフォルトの名無しさん:2009/10/01(木) 12:00:21
>>218
>>207 からそうなのに今更かつアンカーなしでそこ突っ込むとか
お前も大概だな。
220デフォルトの名無しさん: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;
}
223デフォルトの名無しさん:2010/05/03(月) 23:35:03
>>221-222
ネタ?
224 ◆nullpop./c :2010/05/03(月) 23:39:41
マジにネタレスご苦労
225デフォルトの名無しさん: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;
}
226デフォルトの名無しさん:2010/05/04(火) 04:09:32
>>225
カッコつけてんじゃねーよド素人。
227デフォルトの名無しさん:2010/05/04(火) 04:37:15
>>226
括弧つけてはいけないという法は無い
228 ◆nullpop./c :2010/05/04(火) 05:47:29
>>227
爆笑、お前面白すぎ、
エンタに出てる芸人以上じゃね?
久々にわらかしてもらったわw
229デフォルトの名無しさん:2010/05/04(火) 06:25:53
>>222
>printf("%c", 2[str2]);//c

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

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

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

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

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

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

251デフォルトの名無しさん: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 強すぎ

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

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


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

言語厨って哀れだな
256デフォルトの名無しさん:2011/07/11(月) 12:48:19.74
JavaScriptをやってる奴も市ねゴミなんだな
257 【23.2m】 【東電 87.8 %】 :2011/11/19(土) 20:48:51.10
"0123456789abcdef"[ index ]
はたまにやる
258デフォルトの名無しさん:2012/06/26(火) 10:04:34.66
>>254
うっせー

ks
259デフォルトの名無しさん: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;
}
260デフォルトの名無しさん:2012/08/27(月) 04:32:43.10
>>259
#include <stdlib.h>を追加
261デフォルトの名無しさん:2012/09/05(水) 06:18:48.16
D:\work>bits "&"
26h
00100110
262デフォルトの名無しさん: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 )
263デフォルトの名無しさん:2013/07/18(木) NY:AN:NY.AN
j[i[a]]
264デフォルトの名無しさん: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
265デフォルトの名無しさん:2014/05/10(土) 11:15:02.11 ID: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;
}
266デフォルトの名無しさん:2015/02/24(火) 12:04:44.91 ID:B4atg286
「C MAGAZINEのバックナンバーが電子書籍として販売開始された模様(AmazonのKindleストア」

C MAGAZINEのバックナンバーの電子版、1冊80円で提供開始 | スラッシュドット・ジャパン デベロッパー
http://developers.slashdot.jp/story/14/06/26/0425238/
2014年06月26日 14時34分
267デフォルトの名無しさん:2015/03/09(月) 20:12:49.16 ID: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
*/
268デフォルトの名無しさん:2015/03/09(月) 21:26:16.39 ID:YsuhcNZs
いろいろまちがえた
269デフォルトの名無しさん:2015/03/09(月) 21:27:25.50 ID: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
*/
270デフォルトの名無しさん:2015/03/10(火) 01:42:09.98 ID:MZ8Gg0aD
31ビットならできた
271デフォルトの名無しさん
#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;
}