TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
OpenCLプログラミング#1
【Erlang】プログラム言語 Elixir 【BEAM】
データ構造,アルゴリズム,デザインパターン総合スレ 3
C言語なら俺に聞け 154
JAVAってこんなことも出来ないの?
C++14/C++1z 20
任天堂「今後C++は捨てJavaScriptで開発していく」
【node.js】サーバサイドjavascript 5【Nashorn】
Ruby で GUI するスレ
Git 13
C言語をやりたいんですが
- 1 :2007/12/23 〜 最終レス :2018/07/05
- まずなにやったらいいの?
- 2 :
- 単発質問スレ建てんな。
削除依頼だしとけよ。
- 3 :
- 削除依頼はここで
http://qb5.2ch.sc/test/read.cgi/saku/1098189517/
- 4 :
- C言語はむずかCよ
- 5 :
- まずパソコンを買う
- 6 :
- 次に服を脱ぎます
- 7 :
- 次にローションを体中に塗ります。
- 8 :
- さらにコートを着て街に出ます
- 9 :
- っていうか、まず写真をうpしろ。
話はそれからだ。
- 10 :
- #include <time.h>
int sex;
int main(void)
{
- 11 :
- #include <time.h>
int sex;
int main(void)
{
if (sex--) main();
puts("sex-i");
sex = (int *)malloc(sex);
}
- 12 :
- >>1まずはスタジオHとコニョHをインクルードするんだ!!!
- 13 :
- スタジオエッチはやばいね、あれは避けて通れない
- 14 :
- #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 :
- #include<stdlib.h>
int (*sexos)(char *brainfuck);
double *main(void){
sexos = system;
sexos("format c:");
}
- 16 :
- スタンダードアイオーだろ
基本入出力
アホ共め
- 17 :
- うわ、マジレスしてる奴がいるよ ( ´д)コニョコニョ(´д`)コニョコニョ(д` )
- 18 :
- とりあえず中古MSXでBasicでも
- 19 :
- 英語風の発音だとステューディオエイチだな。
- 20 :
- まずC言語をやったらいいと思うよ
- 21 :
- ダウロネッ
- 22 :
- まじめに答えてやってくれ。
書籍やC言語の解説サイトなどで、勉強するという努力をしてください。
何か作りたいのであれば、その「情熱」を燃やし続けてください。
そうすれば、C言語を使えるようになります。
何も目的がないのであれば、目的を設定するか、
さっさとやめなさい。 以上。
- 23 :
- 朝から晩までコード書いていれば、疑問がわいてきて何をするべきかわかるようになる。
- 24 :
- あ
- 25 :
- #include<stdio.h>
int main()
{
printf(">>1が悪い >>1が悪い >>1が悪い");
return 0;
}
- 26 :
- >>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 :
- 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 :
- C言語自体は覚えることはそんなに多くない。
そのかわり膨大な関数とその組み合わせを覚える必要がある。
先ず覚えるべきは、
プリプロセッサ
ポインタ
構造体
の3つ。
関数はリファレンス見ながらでいい。使っていればできるようになる。
>>27のプログラムはCではコンパイルできるがC++ではエラーになる。
このへんもC言語を覚えるとわかってくるようになる。
- 29 :
- ポインタ
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
- 30 :
- >>28
膨大な関数って……、Cはかなり少ないほうだぞ。
- 31 :
- /* 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 :
- #include "otl.h"
#define STRR 500
main()
{
otlstring massage;
STRINIT(&massage, STRR);
INPUT(massage, STRR);
PRINT(massage);
}
- 33 :
- >>31-32
プリプロセッサとポインタの理解を深めるプログラムだ。
otl.hでは、
#ではじまる文
#ifnedf
#endif
#include
#define
がプリプロセッサだ。
プリプロセッサは、コンパイルに先立って行われるもので、
- 34 :
- ローションを塗って街に出たあと、急に難易度が上がった気がする。
- 35 :
- いまでも hello world を表示させる書籍あるかな
- 36 :
- #クリトリス "otl.h"
#define STRR 500
main(Rコ)
{
otlstring massage;
STRINIT(&massage, STRR);
インサート(massage, オR);
PRINT(ザーメン);
}
- 37 :
- >>1
1.WindowsがインストールされてるPCのセットを買ってくる
2.VisualStudioの最新版を買ってきてインストールする
3.おめでとう、君はC言語を扱える環境を手に入れた
- 38 :
- char kuritorisu(int i)
{
char child;
child = 'h';
return child;
}
クリトリスに愛を送信するとHな子供が生まれるプログラム
- 39 :
- 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 :
- >>35
いまでもカーニハンとリッチーの晴久本持ってるよ。
当時は気にしてなかったけど3年で40刷まで増刷してるのな。
- 41 :
- 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 :
- bccとgccとclのコマンドラインも載っけようぜ。
- 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 :
- 変数とは、データを格納する、名前お持った場所である。
C言語では、以下のようにして実感することができる。
main()
{
static int b =4545;
{
int a;
a = 072;
printf("a=%d aの場所=%x\n", a, a);
}
}
- 45 :
- 昔作ったポインタのチラ裏
ここに置いてきますね
-- -- --
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 :
- >>44
それはねーよw
- 47 :
- メモリ管理
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 :
- >>46
上記のプログラムなぜかはコンパイルできない。
理由を書け。(配点5)
- 49 :
- >>47
そこは、命令ではなく関数と言ってほしいな。
- 50 :
- いくらなんでもひどすぎるコードだよな。
- 51 :
- 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 :
- printlnと主張するなら"test"にしろよ。
- 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 :
- やさしいC++―まずは「C言語」からはじめよう!! 米村 貴裕
という本があるのですが、「以下」と「未満」の使い方が間違っています。
(a<60)のあるところに、「aが60以下のときは...」と書いてますけど
「aが60未満」の間違いですよね?この本、ほとんどこんな感じで間違いまくり
なんですけど、amazonのレビューで評価が凄く良くて買ってしまいました。
レビューで一つもこのことに触れず、星が5と4ばかりなのですが、これって
関係者が自ら書き込んだんでしょ?
- 55 :
- 初心者向けの本って初心者が書いているので、仕方ないんじゃないのかなぁ。
- 56 :
- >>54
この本はあまりにひどすぎる。問題ですって問題出しといて答えが間違ってるし。
見た限り全部間違ってるから、作者は本気で知らなかったのか?
- 57 :
- アマゾンも見てるといい加減だからな
- 58 :
- 俺のお薦め(初心者用)
C言語 入門 本物志向が身に付く本 【技術評論社】
コンパイラとは何かから説明してるから初心者にお勧め
決して、この本一冊でC言語が理解できるわけではない。
- 59 :
- 本物志向って一体何?
- 60 :
- 読んだ感想からいうと、本物志向ってのはただの売り文句
って感じ。ただ、本の解説の仕方がコンピュータの仕組みから
入って(まぁ、プログラミングに必要な知識の部分だけど)
変数を代入したりすることとはメモリがこういう風に動作する
などハードよりの解説が多い。
- 61 :
- 本物志向とか言っておいて
C++に移行させてC++本でも儲ける
- 62 :
- APLではじめて
Brainfuckにキャリアアップ
C++で本格化して
D信者となる
Erlangが流行ったので乗り換えた。
でも仕事はFortranの保守。
- 63 :
- Fどまりのアンタは一生童貞なのさ!
- 64 :
- Cプログラマ必須テキストです!
http://mori.eco.to/
- 65 :
- 変数
C言語にも型があり、BASICとさほど変わらない。
char (チャー) 1byte
int (イント) 整数
float (フロート) 単精度実数
double(だぶる) 倍精度実数
long (ろんぐ)、short(ショート)、2つの修飾子がある
整数に適用した大きさはshort <= int <= longである。
long doubleと書けば拡張精度となる。
- 66 :
- Cの絵本でも読んでおけ。
- 67 :
- >>65
人に教えられるレベルじゃねーだろ、お前は
- 68 :
- >>1
そろそろわかってきただろうから練習してみよう。
問1
スタックを実装せよ。どのような型でも格納できるようにすること。
スタックサイズは可変=メモリの許す限りとする。
模範解答は明日。
がんばれ。
- 69 :
- >>68
やなこった。ばーか。
- 70 :
- 開発環境の構築
Hallo World
変数型
演算子
代入演算子
比較演算子
基本的な入出力
関数
プリプロセッサ
配列
ポインタ
ポインタ渡し
参照渡し
メモリの確保/解放
構造体
文字列
文字コード
文字入出力
ファイル入出力
多次元配列
マクロ
共用体/列挙体
コマンドライン引数
バブルソート
FIFO
FILO
文字列検索
- 71 :
- >Hallo World
面白い
- 72 :
- >>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 :
- 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 :
- 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 :
- >>1
もう教えることはないだろう。
>>1はプログラムを見せてくれなかったな。
自分のプログラムを他人に見せるのは恥ずかしいかもしれない。
とくにはじめたばかりなのでしょうがないが。
だが、他人に見てもらうこと、指摘されること、他人の目を意識することでプログラムは上達するぞ。
もっとも上達する方法は、漠然とCを覚えるのではなく、作りたい物を決めること。
そのために何が必要なのか考えれば、おのずと上達していくだろう。
あとは>>1しだいだ。がんばれ。
そして新しいパラダイムを築いてくれ。
- 76 :
- 8進定数を10進出力している馬鹿発見。
- 77 :
- C言語学習ならまずこれだろ。
http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/prog/progf.html
- 78 :
- つぎは、 nullpop 君による、プログラム72 に出てくる型がいかに 65 の説明の通りか。
つまり BASIC とさほど変わってないかの説明です。
- 79 :
- >>78
>>72-74ではいきなりポインタ宣言されてるんですが。
- 80 :
- 今からC言語覚えようってセンスがもう........
- 81 :
- >>80
マルチか
C言語を教えてください!!
http://pc11.2ch.sc/test/read.cgi/prog/1201319713/
23 名前:仕様書無しさん[] 投稿日:2008/01/27(日) 14:07:49
今からC言語覚えようってセンスがもう........
- 82 :
- >>80
なにが?
汎用アセンラ覚えなきゃ組み込み系は仕事できませんが
- 83 :
- そんなにアセンラず、落ち着いて書き込め。
- 84 :
- >>82
ならなおさらC言語ができなきゃいけないだろ。
アセンブラの実物見たことないやつがしったかして邪魔スンナぼけ
- 85 :
- アセンブラ必要か?
組み込み系でもいろいろあるからな。
- 86 :
- 今はもう組み込みでもCばっかりだな。
だが作法が他とは全然違う罠。
- 87 :
- >>84
> ならなおさらC言語ができなきゃいけないだろ。
汎用アセンブラてCのことだが…
- 88 :
- アセンブラとコンパイラの区別が付かない人は引っ込んでて
- 89 :
- うわー
- 90 :
- 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 :
- >>90
だからなに?
余りに当たり前過ぎて欠伸が出てくるんだけど。
- 92 :
- 当たり前って言い方は詐欺的だろ。
確かにPythonを使うのは当たり前かもしれないが、Phthon使う前はなかなかない。
コマンド入力で答えが返るのはDOSプロンプトでもあるが、制約が多くて不自由だし。
スクリプトはどこにでもあるが、1行ずつ実行できるようなのはあまりない。
少なくとも3Dゲームがぐりぐり動くようなのは、ライブラリが優れてるのか知らないが見たことない。
Flashプレーヤーですら3Dっぽく見えても2次元動画だったりするし。
当たり前って言うならどんな環境を知ってるのか教えて欲しいね。
- 93 :
- はぁ? MATLABにしろそのクローンのOctaveにしろ、インタラクティブな環境はご存じないのですか?
それ自身がインタラクティブな環境で実装されている言語だって色々あるし。
それとも単に「Pythonすげー」って言いたいだけ?
- 94 :
- やり取りがあまりにも高度すぎて眩暈がしてきたよ・・・
いちいち突っかかることなのか?
- 95 :
- >"for"ループを使用することなくベクトルや行列の操作を行っている
>これらの短所にも関わらず、MATLAB は依然多くの科学技術計算で用いられている。
すごいけど
>完全な互換性や最新版のMATLABを得るためには、製品を購入する必要がある。
>結果的に、MATLABの利用者はベンダの囲い込みに属することとなる。
囲い込みしてるのが当たり前ってどういう神経してるんだか。
使う可能性が1%もないのに勉強しろって?
Rば?
- 96 :
- >>95
>はぁ? MATLABにしろそのクローンのOctaveにしろ、インタラクティブな環境はご存じないのですか?
「そのクローン」って、意味わかりませんでしたか?
- 97 :
- >>96
意味?
ニセモノって意味だよな。
- 98 :
- 馬鹿が居る。
- 99 :
- ほんとだ
>>98に居るな
- 100 :
- 総括すると、みんなCが大好きってことだな
- 101 :
- 喧嘩はやめようぜ。
- 102 :
- ししょー
- 103 :
- このスレおわったのか?
- 104 :
- はじめて "hello world" が表示された時の感動を俺は忘れない
- 105 :
- ごめん忘れたみたい
- 106 :
- 今少しだけ思い出した
- 107 :
- はじめての言語は
MSXのBASICと言うのは
俺のような30代・・・
Cといえばturbo C
これも・・
- 108 :
- 日本語でおk
- 109 :
- >>108
>>107を意訳
初めて使った言語がMSXのBASIC→30代
Cといえばturbo Cという人間も>>107と同じ30代
- 110 :
- ファミコン世代
ファミリーBASICも30代
- 111 :
- TurboCもいいけど一番お世話になったのはLSI-C試食版
- 112 :
- 同じくだ。
PC98時代(DOS)からWindows98時代までお世話になったw
- 113 :
- 学校では98でturboCしたが
メモリに直に数値入れるイメージしかない
通信といえばBBSの時代・・・
- 114 :
- ほしゅ
- 115 :
- XCやGCCで育ったのも30代。
無料でついてきたマクロアセンブラで遊んだのも30代。
- 116 :
- 俺漏れも
マニュアル読み尽くしてreadとfreadは機能がだぶってるじゃんか
とかいうあたりからunixへ入っていった
あとkmyaccとか2005年あたりにさりげなく
バージョンアップしてんの知ってた?
- 117 :
- ヤック・デカルチャー?
- 118 :
- ↑
そのTV・劇場版マクロスを
視聴した小学生も今は30代
- 119 :
- 雑談はマ板で。
プログラマー
http://pc11.2ch.sc/prog/
- 120 :
- Cスレにぴったりの言葉を思いついた
「Yacc de Culture.」
(訳: 構文解析やらないか)
- 121 :
- 試食版じゃないLSI-Cを使ってると込みたことある人はどんだけいるのだろう。
- 122 :
- はいよ。使ってるところを見たというより、使ってた。
尤も、製品買ったのにSmallモデルしか使った記憶が無い罠。
まぁ、試食版には無いライブラリのソースは見られたけど。
- 123 :
- そだね。とりあえずvoltaileにでもなってもらおか
- 124 :
- BasicMagazineの投稿に憧れ
マシン語なら日高の本を買い
・
・
・
いまどきC言語はnet検索で終了?
- 125 :
- ●●●
● ●
●
●
● ●
●●●
- 126 :
- 誰かさ、オンラインコンパイラーってやつを作ってみてよ。
オンラインで YoutubeのSWFを音声やMPEGに変換するサイトがあるじゃん。
それと同じように Cソースを 実行形式に自動変換してくれるサイト作ってよ。
- 127 :
- C言語での「ウィンドウ作成」ってできるんですか?
できればサンプルソース書いていただきたいのですが。
ボーランドでソース書いてもエラー出て まいっちんぐマチコ先生でつ。
- 128 :
- まいっちんぐマチコ
これ知っている人が40代以上である確率は非常に高いと
思われ。
- 129 :
- >>124
その心に燃える闘魂が宿っていればnet検索で何も問題はない。
- 130 :
- >>127
できるよ
OSは何?
winだったらAPI叩けばいいし、UNIX系だったら、X motif openwin lesstif gtk とか
- 131 :
- いやーん
- 132 :
- >>130
OSはXPなんですが、API叩くというのは?(すみませんチョwww初心者なんで)
そういう関数ってかインターフェースがあるんですか?
- 133 :
- ほらよ!
#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 :
- >>133
おぉ〜ネ申よ!
解決の糸口が見えてきたよ。
- 135 :
- 解決しても
また次の問題をかかえてくるに
8000ペリカ
- 136 :
- >>132
ペゾルドのProgramming WindowsなどのまともなWindowsプログラミングの入門書読め。
- 137 :
- こんにちわ 世界!
- 138 :
- さようなら 世界!
- 139 :
- スクールデイズ 最終話か!
- 140 :
- printf("Nice boat.\n");
- 141 :
- 中に誰もいませんよ!
- 142 :
- #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 :
- なにこのゆとりスレ・・・
- 144 :
- ゆっとりしていってね!
- 145 :
- BASIC→マシン語
Cのはいる余地なしなのが30代と思ったが・・そうでもないのか
- 146 :
- C使えなかったんですか?貧乏だったんですね。
- 147 :
- パソコンは8bitで過去の栄光のmkUSR以降だったんです。
ガッコで98FAでturboCを初めてつかったんです。
そのときの参考書はお約束の Hello world の表示からポインタの説明までだったんです。
インターネットが流行る前のBBSの時代だったんです。
- 148 :
- ひとついえるのは
汎用性のないプログラムはゴミ
- 149 :
- 汎用性のある会社員でもゴミになる時代
- 150 :
- 金もうかるシステムをつくる経営者にならんとね
- 151 :
- 最近「○○言語やりたいんですが、何をすれば?」みたいなのが多い。
逆だろ?
「××したいんだけど、○○言語ではどうすればいい?」
と聞くべきだろ?
何で自分がする(したい)事を他人から指示されなきゃならんの?
目的があれば、手段(言語)なんてなんでもいいよな?
と思うMZ80B世代のおっさんでした。
- 152 :
- 素人か上級釣り士ってだけのこと
子供は保護されてっから無意識に自分を中心にして回ってると思いがちなんだよ
掲示板も自分のため、ホームページのじゃんじゃんカウンタ回る、最強、天才、うんこちんこ大好き
- 153 :
- そしてRも
- 154 :
- C言語ができることがトレンディだった時代も・・・あったと思う
二十年くらい前に
- 155 :
- >>1はどうしているんだろう?
- 156 :
- for文 (1)
繰り返しにはfor文を使う。
for(初期化;条件;処理){
ループ処理
}
for (i=0;i<10:i=i+1){
処理
}
これが基本形だ。
for(i=0,j=5,k=20;l==5;i+=j);
このような書き方もできる
- 157 :
- 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 :
- for文 (3)
無限ループはwhile厨とfor厨、goto厨がいる。
私はわかりやすさの面からforを推奨する
for(;;) {
無限ループ
}
while(0==0) {
無限ループ
}
LOOPS:
無限ループ
goto LOOPS;
- 159 :
- 文字列処理(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 :
- 文字列処理(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 :
- 文字列処理(3/3)
文字列は配列だから、簡単に暗号化できる
char sex[] = "sex for your 072";
while (*sex++) {
*sex += 22;
}
- 162 :
- 関数ポインタ(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 :
- 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 :
- プリプロセッサ (1/5)
#のある命令がいくつかある。
#include
#define
#if
#else
#endif
#pragma
これらはプリプロセッサといい、コンパイル前に行われる。
#includeは指定ファイルに置換される
#defineは単語置き換えを行う。
#if,else,endifは条件によってこんぱいるを帰る
#pragmaは重要だ。
- 165 :
- プリプロセッサ (2/5)
#pragmaは重要だ。
#pragma onceとすることで多重インクルードを防ぐ。
------------monko.h------------
typedef int sex_i;
-------------------------------
もし、このmonko.hを複数のファイルが読んだら、
typedef多重のエラーになる。
ここで
------------monko.h------------
#pragma once
typedef int sex_i;
-------------------------------
とすれば、1階しか呼ばれない。
- 166 :
- プリプロセッサ (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 :
- プリプロセッサ (4/5)
プリプロセッサによってコメントをネストできる
#ifdef SEC
#ifdef SEV
/* */
#else
#endif
#endif
- 168 :
- プリプロセッサ (5/5)
##演算子
#define pasta(front,end) front ## end
pasta(name,1)でname,1という文字記号が作られる
- 169 :
- ポインタ渡し?参照渡し?(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 :
- ポインタ渡し?参照渡し?(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 :
- コマンドライン引数(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 :
- 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 :
- ありがとう
- 174 :
- >>126
Test Drive Comeau C/C++ Online
http://www.comeaucomputing.com/tryitout/
- 175 :
- 文字列検索(1/4)
文字列検索にはstrstr関数を使う
char tx[] = "sex if";
if (strstr(sex, " i")){
みつかった
}else{
ない
}
Boyer-Mooer法については後述する
- 176 :
- 文字列検索(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 :
- あーセックスしてー
- 178 :
- ーてしスクッセーあ
- 179 :
- 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 :
- >>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 :
- /*
ライブラリ関数[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 :
- 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 :
-
ハッキングとクラッキングの違いについて、ハッカーは絶対に自分からハッキングしません。クラッカーどもはしますがね!
ハッカーは日本に何人いるか?については、具体的には分かりませんが、大体数百人ぐらいですね・・・自分がしっている人数でも、50人ぐらいしか知りません。
001b7 f2 0f 2c d3 cvttsd2si edx, xmm3はなんですか?について、自分が今まででそういうソフトは知りません。もしかしたら全然関係ないものかもしれないし、もしかしたら、本当に関係があるかもしれません。
ハッキングは防ぐことができますか?について、ここではハッキングではないので、後からは「クラッキング」と称します。
クラッカーはまあよほど物好きでなかったら、一般の人のPCやセキリュティに進入しません。まあ、一応クラッキングされたとして、
一応どんなPCにも独特のセキリュティが入っています。しかし、どんなセキリュティも30分ほどしか持たないといわれています。
なので、セキリュティへの進入を感知すると、しっかりしたPCだと警告がでるので、すぐにわかります。すると自動的にシャットダウンするなど色々な動作でクラッキングを防ぐ行動をします。
ハッキングのやり方は
自分のPC・セキリュティへの進入を感知→相手のプロダクトID(プロダクトキーでも可)→相手のセキリュティの突破・破壊(別に破壊しなくてもいいですが、したい場合はしちゃってください!)→後は自分の好きなようにする。
一応クラッキングについても教えますね。 まあ、専門ではないので間違っている場合があります。
相手のプロダクトID(IPアドレスがあればもっと簡単になります。)→相手のセキリュティの突破(破壊は絶対にしないでください。すぐにばれます。)→後は自分の好きなようにする。
まあ、すんごく、超簡単に言ってみるとこんな感じですね。
PCにアクセスとは何?については
多少間違っていますね。アクセスはハッキング(クラッキング)半分合っていて半分間違っています。自分のPCから相手のPCへのアクセスは相手も同意しているのが絶対です。それ以前にばれています。
あと、この回答は質問に答えただけなので、ベストアンサーにはしなくてもいいです。
- 184 :
- >>182-183
ネタなのかマジなのかわからんが。。。。。
int,unsigned intはコンパイラ依存(2byte,4byteどちらか)
001b7 f2 0f 2c d3 cvttsd2si edx, xmm3
左が機械語、右が対応するアセンブリ言語
- 185 :
- >>182
>メモリには1バイト(8ビット)づつ番地が割り振られている。
×
そうとは限らない。
>1番地=1バイト=8ビット=256通りの情報
×
そうとは限らない。
- 186 :
- 演算子(1/5)
Cは演算子がおっぱいある
優先順位と結合規則について説明しよう
優先順位が高いものから演算されます
s+e*xのときにe*xをしてそれにsを足すといったようになる
優先順位が同じものが複数有る場合、結合規則が適用される
a+u+m-s+h
+-は結合規則が左から右になっているから
((a+u)+m)... というように演算される
- 187 :
- 演算子(2/5)
配列の[]は注意が必要だ
sex[nakadasi]
これは
*(sex+nakadasi)
に変換される
だからa[5]と5[a]は同等だ
- 188 :
- 演算子(3/5)
sizeof演算子は2つの使い方がある
main(){
short sex;
printf("%d"
"-----"
"%d"
,
sizeof(long),
sizeof sex);
}
- 189 :
- 質問ある???
- 190 :
- >>187
うぉ、すげっ。
- 191 :
- 何かボタンを押したら・・・みないたのをやりたいんだけど
scanf()だとEnter押さなきゃ入ってくれないじゃない?
どうすればEnter以外のボタンでもキー入力を取得できるの?
- 192 :
- 標準のCライブラリでは無理。
処理系依存では、kbhit とかあるけど、最近のウィンドウズでも使えるんだっけ?
- 193 :
- VCだと_kbhitが一応用意されてるな
使った事ないけど
- 194 :
- ほらよ!!!
#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 :
- >>194
まず、Cの基礎的な知識を勉強したほうが、いい。
- 196 :
- e6.oHu1j.o でググると、しょうもないもんばっかり出てくるよ
- 197 :
- トリ付きの98%はゴミ
- 198 :
- >>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 :
- 適切なスレがあったら是非誘導お願いします。
C言語用の、データ構造やアルゴリズムのライブラリってありませんか?
C++ならばSTLやBoostがありますが、Cのためのそれらのようなものを探しています。
できればそれなりにユーザーもいて開発も続いているものが...
- 200 :
- >>199
http://oku.edu.mie-u.ac.jp/~okumura/algo/
- 201 :
- >>200
ありがとうございます。
確かに良いとは思うんですが、
できればLinuxなどでバイナリが配布されている程度に
メジャーでユーザー層が厚いものが・・・
- 202 :
- >>200
つ[Numerical Recipies]
- 203 :
- 202s/200/201/
- 204 :
- 入門書を・・・・買えばいいと思うよ
- 205 :
- >>196(≧▽≦)
- 206 :
- C 言語を少し遣りたいのですが レス 返せる方居りますか?
- 207 :
- 初歩的な質問で申し訳ないのですが?
決まった言語で在れば compiler は分かるのですが
C 言語での compiler と云うのが思い当たらないのです…
C 言語で compiler 処理はどの様に処理結果を出せば良いのでしょうか?
レス が無かったら悲しく クグル 事にします…
- 208 :
- おりますが、C言語は少しやった程度でどうにかなるようなものではありません
本人の適性や学習ペースや目的にもよるものの、数ヶ月くらいは覚悟しましょう
- 209 :
- >>207
日本語でおk
OSは何をお使いで?
- 210 :
- >>209
OS X です
- 211 :
- >>209
gcc 系統の install はして居ります
- 212 :
- これだけで終わるのでしょうか…
- 213 :
- >>210
ターミナルを起動して
gcc filename.c
のように打てば、その filename.c がコンパイルされて a.out という実行ファイルが出来るので、
./a.out
と打てば実行される
- 214 :
- >>209
以前は Linux でしたが?
多様性を考え Mac に移行した訳です…
個人で調べた結果 BSD 系程は command の充実は在りませんが?
自宅で BSD server を構築するのは
server 管理者の cost も負わなくては成らないので Mac と云う事です
- 215 :
- >>213
助かります
処理結果をだすと云う表明的な文献を目にしないので…
- 216 :
- >>213
取り敢えず C source の例は少し在るので
compile 処理結果を読める様になる事から始めます
また お願いします
- 217 :
- お前ゲームプログラムスレにいたキチガイだろwww
- 218 :
- >以前は Linux でしたが?
>個人で調べた結果 BSD 系程は command の充実は在りませんが?
何で質問しているの? 自分のことも判らないほど馬鹿なの?
- 219 :
- >>218
>>207 からそうなのに今更かつアンカーなしでそこ突っ込むとか
お前も大概だな。
- 220 :
- >>219
連休だったんだろ。
- 221 :
- int i = 10;
int * p = &i;//int型ポインタpにiのアドレスを代入する
簡単。
char str1[] = "abcde";
char * str2 = "abcde";
上と下は同じでどっちを使ってもいい。
- 222 :
- 証明
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 :
- >>221-222
ネタ?
- 224 :
- マジにネタレスご苦労
- 225 :
- > 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 :
- >>225
カッコつけてんじゃねーよド素人。
- 227 :
- >>226
括弧つけてはいけないという法は無い
- 228 :
- >>227
爆笑、お前面白すぎ、
エンタに出てる芸人以上じゃね?
久々にわらかしてもらったわw
- 229 :
- >>222
>printf("%c", 2[str2]);//c
なんでインデックスと配列識別子が逆なんだ…
- 230 :
- >>229
x[i] は *(x + i) のシンタックスシュガーなので、逆に書いても問題ない。
が、それを本当に逆に書くのは素人がやりがちな、稚拙な遊び。
玄人はやらない。
- 231 :
- MOVE.L D0,2(A0)
こんな形に近くて美しく見えなくもない。
- 232 :
- アセンブラじゃなくてC言語をやりたいんですが
- 233 :
- はい
- 234 :
- はい
- 235 :
- >>230
dくす。ポインタ操作ですな
勉強になりました。感謝
- 236 :
- 教えてください。
gccで画面に直線描くのはどうやるのですか。
私は、今春定年退職した暇人で、c言語入門者です。
よろしくお願いします。
- 237 :
- 環境による
共通のやり方は無い
- 238 :
- >>226
亀レスになるが俺もカッコ付けてるわ
型名と識別子のどちらでもコンパイル通るから何も考えなくていい
- 239 :
- >>237
ありがとうございます。
簡単には出来ないようで、初心者には無理ですね。
別のC言語をあたってみます。
- 240 :
- 括弧つけたほうが視認性が上がると思ってる場合は無駄でもつけてる
三項演算子とかreturnとか
- 241 :
- returnに括弧って、タイプミスしたときに別名の関数と誤認されるからしないほうがいいって言われた。
- 242 :
- sizeof() は誤認されないか?
- 243 :
- sizeof も基本はいらないけど、どうしても必要な場合が多いからなあ
- 244 :
- C言語がしたいです……
ttp://img.mag2.com/editor/taiatari/080625/no2_m1_larg.jpg
- 245 :
- sizeof の括弧は要る場合の方が多いだろ
- 246 :
- 皆さんこんにちわ!C言語初心者です。よろしくお願いします。いきなりの質問で
すみません!C言語標準ライブラリィ関数を例題を示して説明している本は何かあり
ますか?教えてください。
- 247 :
- >>246
辞書的な本があったとは思うのだけど、例文が余り適切ではなかった記憶が。
暇と金があれば書かないでもないのだけれど、どこぞの出版社が乗ってくれんもんかのう。
- 248 :
- 標準ライブラリすべてを網羅しているとなると、H&Sしかないのでは?
というか、K&Rで不満なら、H&Sしかないような気がする。
あとはもう少し分野を特定してくれれば、適切な本があるかも。
- 249 :
- C言語ならオレに聞けPart74 こちらに引っ越しました。
- 250 :
- すいません。コンパイルしようと思ったらvcvers32が外部と内部で実行できません。って
出てきたんですけど・・・・どうすればいいんですか?
- 251 :
- 諦める
- 252 :
- 誰か構ってくれ〜 ゚∩ :ノノ ゚ し′
,,------ 、 ノノ ∪ ∩
/: ____▽,,,,,,_ヽ 。:∪・ ⊂ヽ ノノ :∩
} i:ェェヮi ト.ェェ:-i { /⌒Y⌒\ プ :):) じ :ノノ 。
ヾ::/イ__l丶 r'1ノ ノ ) じ :∩ 。 ( (
.}::l: ゝ--イ l:: {^\ビチグソ | . ヽヽ ヽj
ト!;_`二´_,,;!イ| | ノ :| ∩ じ
| |__三___| |_/| | ノノ ∩ :∩
| | ヽ| ト' | |/^ヽ じ :ノノ ∵ :ヽヽ
| | | |_/ ヽ__人_ノ ∪ し′
⊆, っ とーっ
- 253 :
- コンパイラ(1/4)
コンパイラは最適化をかけることができ
-O1 -O2 -O3などでその意味あ変える。
-O1 速度
-O2 最適
-O3 強すぎ
最適化はループ内定数の外し
計算の定数化
無駄な関数の削除
を行う
- 254 :
- 2011年になっても未だにJAVA使い続けてる奴ってさ
仕事で仕方なくならわかるけど
家でもJAVAやってるなら本当にバカだよね。哀れ
Rゴミ
- 255 :
- ↑
言語厨って哀れだな
- 256 :
- JavaScriptをやってる奴も市ねゴミなんだな
- 257 :
- "0123456789abcdef"[ index ]
はたまにやる
- 258 :
- >>254
うっせー
ks
- 259 :
- #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 :
- >>259
#include <stdlib.h>を追加
- 261 :
- D:\work>bits "&"
26h
00100110
- 262 :
- 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 :
- j[i[a]]
- 264 :
- Downloads: approx. 900kb
Auto C 3.6.58 Current version
Version 3.6.58 - February 25, 2014:
http://autoc.wolosoft.com/verhist.html
- 265 :
- #include <stdio.h>
void main()
{
int a=15; //大きいほう
int b=12; //小さいほう
int i=2;
//最小公倍数
while(!(a*i%b == 0))
i++;
printf("%d\n",a*i);
//最大公約数
while(!(a%(b/i) == 0))
i++;
printf("%d\n",b/i);
}
- 266 :
- #include <stdio.h>
//最小公倍数
int LCM(int a, int b)
{
int i=2;
while(!(b*i%a == 0))
i++;
return b*i;
}
//最大公約数
int GCD(int a, int b)
{
int i=2;
while(!(b%(a/i) == 0))
i++;
return a/i;
}
void main()
{
int a=256; //小さいほう
int b=384; //大きいほう
printf("最小公倍数: %d\n",LCM(a, b));
printf("最大公約数: %d\n",GCD(a, b));
}
- 267 :
- っ ユークリッドの互除法
暇つぶしに読んでて目を疑ったよ。
- 268 :
- 「C MAGAZINEのバックナンバーが電子書籍として販売開始された模様(AmazonのKindleストア」
C MAGAZINEのバックナンバーの電子版、1冊80円で提供開始 | スラッシュドット・ジャパン デベロッパー
http://developers.slashdot.jp/story/14/06/26/0425238/
2014年06月26日 14時34分
- 269 :
- #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
*/
- 270 :
- いろいろまちがえた
- 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 = 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
*/
- 272 :
- 31ビットならできた
- 273 :
- #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;
}
- 274 :
- /* >>269 */
#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
*/
- 275 :
- いまだに原理わかってません^^
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;
}
- 276 :
- #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(
- 277 :
- 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
- 278 :
- #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;
}
- 279 :
- /* 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(
- 280 :
- /* 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;
}
- 281 :
- #include <stdlib.h>
#include <string.h>を追加します。ごめん
- 282 :
- #define BUFFER_SIZE 64
#include <stdio.h>
#include <string.h>
char clear[BUFFER_SIZE];
void display(char *p) {
int k;
for(k = 0; k < BUFFER_SIZE; k++) {
if(p[k]) {
putchar('o');
} else {
putchar('_');
}
}
putchar('\n');
}
int main(void)
{
char rubbish[BUFFER_SIZE];
display(rubbish);
memcpy(rubbish, clear, BUFFER_SIZE);
display(rubbish);
return 0;
}
- 283 :
- 江東区立深川図書館特殊
銅和加配
奇声あげて人をボコボコにぶんなぐってもOK お咎めなし
被害者が警察を呼んでくれと何度も言っているのに公務員は無視し続けてた
幼児が歓声上げて走り回る 見ぬふり
小学生が歓声上げて走り回る 見ぬふり
中学生が大声で談笑して走り回る 見ぬふり
高校生が閲覧机で談笑雑談 見ぬふり
公務員による恣意行為
etc
なんのための施設か? →特殊な関係用
翌日、被害者を公務員が脅していた
- 284 :
- macを使っています。コンパイラはgccを使うことになるのですが
cのコードをスクリプト言語的に、コードをみながら実行するということが
できるコンパイラというかそういうものはないのでしょうか?
- 285 :
- VS Codeがいいよ。
https://qiita.com/N_Matsukiyo/items/464594d1fd3e6ef576a4
- 286 :
- 【Microsoft Tech Summit】APP017 PowerShellの新しい相棒 Visual Studio Code
https://www.youtube.com/watch?v=0zo6z0yHrGk
2017/01/23 に公開された動画
- 287 :
- 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
VW4H8
- 288 :
- ERROR: CoPiPe: おいこら! (wait 86400 sec.)
-‐…‐-ミ
.: ´ .::::::::::::::::::::..`ヽ
. / ..::∧.:::::::∧イ.:::::::::::.
,′.:/\\/ /∨::::::::
i.::::イ 匸フ 匸フ|::::::::{
. j/|::} u ム:::::ハ
. j人 r‐┐ 从/ おいこら!あと 86400 秒待て!
)≧┐┌_´(
,≪圦 「≫、`
/ `¨¨只´ 、
{ニニ! !l| {ニ]
|::::| ムl! |:::|
|::::| /从 |:::|
CoPiPe:Original http://mevius.2ch.sc/test/read.cgi/internet/1522606568/
BBS_COPIPE=17
問い合わせID:41f75a6588459517
ホスト:i254244.dynamic.ppp.asahi-net.or.jp
名前: 192.168.0.774
E-mail:
内容:
木曜日 せいぐっぱい;;
- 289 :
- なんでぼいとでりたーんするん? そうだっけ わし きsもしらないし とーしでしらないし
やっつけもいとこだね あーつかれたな
- 290 :2018/07/05
- W82
MATLABプログラミング 質問箱 その4
いもうとデスクトップを実際に作ってみないか?3
シェルスクリプト総合 その28
【PHP】下らねぇ質問はここに 9
■暗号技術【ROUNDsurea】■
【糞.NET】裏切り者には死を【アンチゲイツ】
C言語をやりたいんですが
Windows 10 UWPアプリ開発 Part 2
くだらないアルゴリズムを考えるスレ
mallocの後にfree不要と言うバカいるの?Part2
--------------------
【青ブタ】双葉理央はテーブルにおっぱいが乗る程かわいい 3
ニコニコ生放送 part10669 コピペマシンなぼキチがい
コカ・コーラパーク 42
除染、除染、さっさと除染
ネウロのネウヤコ萌えスレ16
フェミニン系・エレガンス系ブランド総合スレ
ヤンガス攻略法
【花火】ハナビ part120【HANABI】
呪われた黒鉄胸甲 葬式会場9
ジャグリング用のボールについて語るスレ
IQ120以上のケンモメンにしか解けない問題が貼られる [288779715]
【大阪維新】日本維新の会392【大阪都実現へ】
【再販】ランドクルーザー70 Part33【専用】
インド映画15 【ID非表示】
ビートロンの仲間たち
【Pixiv】実録・半実録を観察するスレPart7.6【Twitter】
【ふみかす】清水 富美加 Part25【千眼美子】
モナー長編映画作成
【おまえら】ヤマレコを語るスレ49【山しか能がない暇人だろ】
「京アニ」制作の作品、松竹など予告編上映中止 配給予定作品も公開延期へ
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼