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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2007/12/23(日) 02:35:09
まずなにやったらいいの?
2007/12/24(月) 09:33:36
C言語自体は覚えることはそんなに多くない。
そのかわり膨大な関数とその組み合わせを覚える必要がある。

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

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

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

2007/12/24(月) 09:38:24
ポインタ
http://www.geocities.jp/debu0510/personal/pointa.html

構造体
http://wisdom.sakura.ne.jp/programming/c/c34.html

プリプロセッサ
http://www9.plala.or.jp/sgwr-t/c/sec18.html

2007/12/24(月) 09:45:44
>>28
膨大な関数って……、Cはかなり少ないほうだぞ。
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
2007/12/24(月) 10:13:10
#include "otl.h"

#define STRR 500

main()
{
otlstring massage;

STRINIT(&massage, STRR);

INPUT(massage, STRR);

PRINT(massage);
}
2007/12/24(月) 10:15:36
>>31-32
プリプロセッサとポインタの理解を深めるプログラムだ。

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

プリプロセッサは、コンパイルに先立って行われるもので、
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(ザーメン);
}
2007/12/24(月) 23:55:26
>>1
1.WindowsがインストールされてるPCのセットを買ってくる
2.VisualStudioの最新版を買ってきてインストールする
3.おめでとう、君はC言語を扱える環境を手に入れた
2007/12/25(火) 00:01:12
char kuritorisu(int i)
{
char child;
child = 'h';
return child;
}

クリトリスに愛を送信するとHな子供が生まれるプログラム
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();
}
2007/12/25(火) 17:14:22
>>35
いまでもカーニハンとリッチーの晴久本持ってるよ。
当時は気にしてなかったけど3年で40刷まで増刷してるのな。
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.
2007/12/30(日) 01:23:26
bccとgccとclのコマンドラインも載っけようぜ。
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る。
2008/01/04(金) 15:07:34
変数とは、データを格納する、名前お持った場所である。
C言語では、以下のようにして実感することができる。

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

}
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-
-- -- --
2008/01/06(日) 01:51:18
>>44
それはねーよw
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();
}
2008/01/08(火) 10:52:59
>>46

上記のプログラムなぜかはコンパイルできない。
理由を書け。(配点5)
2008/01/08(火) 15:47:14
>>47
そこは、命令ではなく関数と言ってほしいな。
2008/01/08(火) 21:40:21
いくらなんでもひどすぎるコードだよな。
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");

}
2008/01/10(木) 20:29:30
printlnと主張するなら"test"にしろよ。
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ばかりなのですが、これって
関係者が自ら書き込んだんでしょ?
2008/01/15(火) 10:57:21
初心者向けの本って初心者が書いているので、仕方ないんじゃないのかなぁ。
56デフォルトの名無しさん
垢版 |
2008/01/15(火) 11:31:36
>>54
この本はあまりにひどすぎる。問題ですって問題出しといて答えが間違ってるし。
見た限り全部間違ってるから、作者は本気で知らなかったのか?
2008/01/15(火) 13:21:07
アマゾンも見てるといい加減だからな
58デフォルトの名無しさん
垢版 |
2008/01/18(金) 18:39:53
俺のお薦め(初心者用)
C言語 入門 本物志向が身に付く本 【技術評論社】

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

でも仕事はFortranの保守。
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と書けば拡張精度となる。
2008/01/24(木) 10:58:53
Cの絵本でも読んでおけ。
2008/01/24(木) 11:50:45
>>65
人に教えられるレベルじゃねーだろ、お前は
68 ◆nullpop./c
垢版 |
2008/01/25(金) 09:11:51
>>1
そろそろわかってきただろうから練習してみよう。

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

模範解答は明日。
がんばれ。
2008/01/25(金) 09:51:55
>>68
やなこった。ばーか。
2008/01/25(金) 15:30:22
開発環境の構築
Hallo World
変数型
演算子
代入演算子
比較演算子
基本的な入出力
関数
プリプロセッサ
配列
ポインタ
ポインタ渡し
参照渡し
メモリの確保/解放
構造体
文字列
文字コード
文字入出力
ファイル入出力
多次元配列
マクロ
共用体/列挙体
コマンドライン引数
バブルソート
FIFO
FILO
文字列検索
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 */
2008/01/26(土) 09:37:39
>>1
もう教えることはないだろう。
>>1はプログラムを見せてくれなかったな。
自分のプログラムを他人に見せるのは恥ずかしいかもしれない。
とくにはじめたばかりなのでしょうがないが。
だが、他人に見てもらうこと、指摘されること、他人の目を意識することでプログラムは上達するぞ。

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

あとは>>1しだいだ。がんばれ。
そして新しいパラダイムを築いてくれ。
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
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言語覚えようってセンスがもう........
2008/01/27(日) 14:31:11
>>80
なにが?
汎用アセンラ覚えなきゃ組み込み系は仕事できませんが
2008/01/27(日) 14:32:44
そんなにアセンラず、落ち着いて書き込め。
84デフォルトの名無しさん
垢版 |
2008/01/27(日) 14:48:34
>>82
ならなおさらC言語ができなきゃいけないだろ。
アセンブラの実物見たことないやつがしったかして邪魔スンナぼけ
2008/01/27(日) 17:57:18
アセンブラ必要か?
組み込み系でもいろいろあるからな。
2008/01/27(日) 19:25:24
今はもう組み込みでもCばっかりだな。
だが作法が他とは全然違う罠。
2008/01/27(日) 21:19:13
>>84
> ならなおさらC言語ができなきゃいけないだろ。
汎用アセンブラてCのことだが…
88デフォルトの名無しさん
垢版 |
2008/01/27(日) 21:47:31
アセンブラとコンパイラの区別が付かない人は引っ込んでて
2008/01/27(日) 22:54:00
うわー
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'
2008/01/28(月) 10:17:28
>>90
だからなに?
余りに当たり前過ぎて欠伸が出てくるんだけど。
92デフォルトの名無しさん
垢版 |
2008/01/28(月) 11:01:57
当たり前って言い方は詐欺的だろ。
確かにPythonを使うのは当たり前かもしれないが、Phthon使う前はなかなかない。
コマンド入力で答えが返るのはDOSプロンプトでもあるが、制約が多くて不自由だし。

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

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

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

すごいけど

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

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

死ねば?
2008/01/28(月) 11:45:16
>>95
>はぁ? MATLABにしろそのクローンのOctaveにしろ、インタラクティブな環境はご存じないのですか?
「そのクローン」って、意味わかりませんでしたか?
97デフォルトの名無しさん
垢版 |
2008/01/28(月) 11:46:17
>>96
意味?
ニセモノって意味だよな。
2008/01/28(月) 13:19:23
馬鹿が居る。
2008/01/28(月) 13:28:56
ほんとだ
>>98に居るな
100デフォルトの名無しさん
垢版 |
2008/01/28(月) 18:53:38
総括すると、みんなCが大好きってことだな
2008/01/28(月) 19:44:57
喧嘩はやめようぜ。
2008/01/28(月) 22:06:01
ししょー
2008/02/29(金) 21:04:47
このスレおわったのか?
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
これも・・

2008/06/17(火) 07:33:03
日本語でおk
2008/06/18(水) 09:11:43
>>108
>>107を意訳

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

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

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



いまどきC言語はnet検索で終了?
2008/11/28(金) 20:51:57
  ●●●
 ●   ●


 ●   ●
  ●●●
2008/11/28(金) 23:58:52
誰かさ、オンラインコンパイラーってやつを作ってみてよ。
オンラインで YoutubeのSWFを音声やMPEGに変換するサイトがあるじゃん。
それと同じように Cソースを 実行形式に自動変換してくれるサイト作ってよ。
127デフォルトの名無しさん
垢版 |
2008/11/29(土) 23:35:42
C言語での「ウィンドウ作成」ってできるんですか?
できればサンプルソース書いていただきたいのですが。
ボーランドでソース書いてもエラー出て まいっちんぐマチコ先生でつ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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