C言語なら俺に聞け! Part 82
レス数が1000を超えています。これ以上書き込みはできません。
0001v(^o^i)d
NGNG質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だYO!
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
各種リンクは>>3-20あたり(誰か適当に貼って)
C言語なら俺に聞け! Part 81
http://pc5.2ch.net/test/read.cgi/tech/1085806791/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
【ライセンスや機能などに問題あり】
Microsoft C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
Intel C++ Compiler for Linux
http://developer.intel.com/software/products/compilers/clin/noncom.htm
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG00074
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG宿題: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
環境依存: http://pc5.2ch.net/test/read.cgi/tech/1086373839/
猿: http://pc5.2ch.net/test/read.cgi/tech/1083765346/
GCC: http://pc5.2ch.net/test/read.cgi/tech/1072484422/
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG例えば以下の例が有るとします。
enum Type
{
taaa,
tbbb,
tccc,
tlast
};
static char lpType[tUnknown];
void main()
{
lpType[taaa] = "aaa";
lpType[tbbb] = "bbb";
lpType[tccc] = "ccc";
printf(lpType[tbbb]);
}
これはこれで上手く行ってる訳ですが何となく美しくない。
そこでこれをlpTypeを宣言した時に初期化したいわけですが
何らかの方法って無いでしょうか。
要は
static char lpType[tUnknown] = {
[taaa] = "aaa",
[tbbb] = "bbb",
[tccc] = "ccc",
};
見たいな事が出来ないかなぁと思うわけですが。
0012デフォルトの名無しさん
NGNG正しくは以下です。
>static char lpType[tUnknown];
static char lpType[tlast];
0013デフォルトの名無しさん
NGNGその上の例でエラーや警告が出ないのか?
0014デフォルトの名無しさん
NGNG> lpType[taaa] = "aaa";
警告は処理系依存だが、これで警告を出さないコンパイラは嫌だ。
001514
NGNG0016デフォルトの名無しさん
NGNG本当の正しくは
static char* lpType[tlast];
です。
001714
NGNGstatic char *lpType[tlast]={"aaa","bbb","ccc"};
0018デフォルトの名無しさん
NGNGimport java.awt.*;
import javax.swing.*;
0019デフォルトの名無しさん
NGNGenum なんか使わずに変けば?
0020デフォルトの名無しさん
NGNGそれだと常に順番は固定じゃないですか。
enum Type
{
tccc,
tbbb,
taaa,
tlast
};
とかに変えても動くようにしたいわけです。
0021デフォルトの名無しさん
NGNGどーでもいいけど、C++でいいんじゃね。
0022デフォルトの名無しさん
NGNGあきらめろ
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNGごめんなさい、意味がわからないです。
>>21
C++だとどうやって書けば良いのですか?
>>22
前に、どこかでこんなような事が出来るみたいな事を見たんですが。
C++だったのかもしれません。
0025デフォルトの名無しさん
NGNGなので、別のC++スレに逝ってください。
0026デフォルトの名無しさん
NGNG#define tbbb "bbb"
#define tccc "ccc"
#define tlast 3
static char *lpType[tlast]={taaa,tbbb,tccc};
これくらいしかないが、#defineを使うのは嫌なんだろうな。
0027デフォルトの名無しさん
NGNGC99でいけるよ。
0028デフォルトの名無しさん
NGNG構造体じゃなくて?
0029デフォルトの名無しさん
NGNGtaaaやtbbbに0,1と言った数値も割り振っておきたいので
それだと、ちとまずいです。
>>27
それに付いてもちょっと調べてみます
>>25
ではそちら方で聞きなおしてきます。
有難うございました。
0030デフォルトの名無しさん
NGNGああ、こうしていたか。
0031デフォルトの名無しさん
NGNG003228
NGNGこれか。
0033デフォルトの名無しさん
NGNG{
tccc = 2,
tbbb = 1,
taaa = 0,
tlast = 3
};
0034デフォルトの名無しさん
NGNGそれはそうなんだけどenumなものってOKなのかな
0035デフォルトの名無しさん
NGNGgcc3.3.3で-std=c99 -pedanticをつけてコンパイルしても通ったから大丈夫じゃないかな。
0036デフォルトの名無しさん
NGNGへへぇ。勉強になった。どもです。
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG確かにコンパイラのいうとおりだけど、いろいろおもろいですね…。
0039デフォルトの名無しさん
NGNGそうです、これです!
でも通常のCじゃ無理みたいですね。
gccならオプションの変更でいけるようですが。
VCだとどうすれば使えるようになるんだろう。
0040デフォルトの名無しさん
NGNGはい、C++スレへGO!
0041デフォルトの名無しさん
NGNG>でも通常のCじゃ無理みたいですね。
C99は普通のCじゃないのか...
0042デフォルトの名無しさん
NGNGC99完全準拠の処理系ってある?
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGawkかPerlを使えばできる。
0046デフォルトの名無しさん
NGNGわたしが去年いたプロジェクトでつくったコンパイラーがそうだ。
(本来はC++コンパイラーなのだが、C99もコンパイルできる)
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG頂戴
0049デフォルトの名無しさん
NGNG{sha}xxxxxxxxxxxxxxxx
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGハッシュ化アルゴリズム
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGとかくところが素人くささ満点
0055デフォルトの名無しさん
NGNGプ
0056デフォルトの名無しさん
NGNG意味がわからない。
005754じゃないんだけど
NGNGどういうところで使われてんの?
なぜかアセンブラーとかアッセンブラーとかはちょくちょく見るけど
コンパイラーとかリンカーってちょっと違和感がある。
005857
NGNG2ちゃんでしか見ないって言いたかったのですよ。
0059デフォルトの名無しさん
NGNGダイアとダイヤの違い
タイアとタイヤの違い
ファイアとファイヤーの違い
ファイアとファイアーの違い
ファイヤとファイヤーの違い
(ry
0060(^-^)
NGNGこちらでも、お世話になります。
0061デフォルトの名無しさん
NGNG同じものを指しているとわかる限りその程度の揺らぎは許容範囲だと思うが。
正確さにこだわるなら原語(ここでは compiler)以外使わない方がいい。
0062デフォルトの名無しさん
NGNG国内での邦訳にもちゃんと規格があるはずだが・・・
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG図形の場合は「ダイア」グラム、
宝石の場合は「ダイヤ」モンド、
と国語審議会による標準が決められていたように思われ。
他の長音、促音なども同様に。
0065デフォルトの名無しさん
NGNGJISか何かで付けないことにしようと決まってるんだっけ?
確か日本語的には付けないといけませんよだった気がするな。
0066デフォルトの名無しさん
NGNGttp://www2u.biglobe.ne.jp/~standard/faq/faq505.htm
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGスパユザ(ネタ)
0070デフォルトの名無しさん
NGNG(プログラムを指して)プラム
(*.basを称して)ベース
レジ
アッセ
ファルス
ワーニング
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGでも、辞書とかでカタカナではワーニングで載ってるし。
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG風潮がおかしいと思う。これは主張したいところのもの
だねえ。
0079デフォルトの名無しさん
NGNGウォーニングとか書くと厨房臭い。
したがって、当然2chの公式表記はウォーニング。
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGワーズマンカコワルイ。
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG/ ::::::::::::::::\ つ
. | ,,-‐‐ ‐‐-、 .:::| わ
| 、_(o)_,: _(o)_, :::|ぁぁ
. | ::< .::|あぁ
\ /( [三] )ヽ ::/ああ
/`ー‐--‐‐―´\ぁあ
にんぐ
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNGださ... > 自称ぷろ
0089デフォルトの名無しさん
NGNGウォーニングって言ったらほわ?って聞き返されました。
0090デフォルトの名無しさん
NGNG前者のほうは日本語だとおもわれてるにちがいない。
0091デフォルトの名無しさん
NGNG発音がおかしいって言われたらブリティッシュだからって言えよ。
0092デフォルトの名無しさん
NGNGcountはこうんと
whileとdoとreturnはどうする?
0093デフォルトの名無しさん
NGNGでも、カタカナで「ワーニング」とは書かないで。
「デズニーランド」と言ってもいいから、書くときには「ディズニーランド」と書いて。
0094デフォルトの名無しさん
NGNGうひれ どー れとぅるん
0095デフォルトの名無しさん
NGNGということにしたい!
そうしないと私の立場がない!
0096デフォルトの名無しさん
NGNG> でも、カタカナで「ワーニング」とは書かないで。
書くときさえちゃんと書けば、言うときは「Star Warz」も「Warming Up」も
「ワー」でいいよね? ;-)
0097デフォルトの名無しさん
NGNG「わー」だけじゃなく、その前後もちゃんとした発音なら許す。
0098デフォルトの名無しさん
NGNGあぼ〜ん
0099名無しさん@お腹いっぱい。
NGNGgmon.outが作成されません。なぜでしょうか。
#include <stdio.h>
int main(void)
{
int i;
for (i = 0; i < 2; i++) {
printf("%d\n", i);
}
return 0;
}
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG発音がおかしいって言われたらスパニッシュだからって言えよ。
010461
NGNG他の原語圏で生まれたものを邦訳した時点で発音や表記に揺らぎが生じるのはしかたない。
・それ(発音や表記の揺らぎ)によって他の意味と取り違える可能性が低い場合は許容したら?
・それ(発音や表記の揺らぎ)が嫌なら原語を使えば?
という「個人的な主張」なんだけど。
規格に対して何の疑問も持たず、
それ(規格)を鵜呑みにすることに慣れている人には理解しにくいかも知れない。
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNGイイ!
0107デフォルトの名無しさん
NGNGこれで決定
0109デフォルトの名無しさん
NGNGすたーわーず、わーみんぐあっぷ
0110デフォルトの名無しさん
NGNGワーディングとまぎわらしい
0111デフォルトの名無しさん
NGNGvoid f(int *a[2][3]);
void main(){
int a[2][3] = ...;
f(&a);
}
ではエラーになります。
0112デフォルトの名無しさん
NGNG変わったことしようとしてるな。
0113デフォルトの名無しさん
NGNGvoid function(void){
int a = 0;
printf( "%d\n", a );
}
とするよね.
このとき,函数 function が呼ばれるたびに,
a のために sizeof(a) byte がメモリに確保されるけど,
この a のためのメモリ領域は函数 function が
終わると開放されるんだっけか?
くやしかったら教えろこのやろ!
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNGそうなんだが、お前の思ってるイメージとは多分、違う。
アセンブラに落として読んでみな。
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNGレジスタ渡しならメモリが確保されることは無い。
スタック渡しなら、スタックポインタが上下するだけで、
一般的にメモリの確保は行われない。
その他の場合は知らん。
0118117
NGNGまぁ、回答としてはおおむね合ってるからいいか。
0119デフォルトの名無しさん
NGNGなんで誰もワープ航法には触れないのだろう?
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNGスパ(σ・∀・)σゲッツ!!
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG0128127
NGNGhttp://web.canon.jp/about/mark/
キヤノンの「ヤ」の字は、何故大きいのでしょうか?
「ヤ」の字が大きく表記された「キヤノン」が生まれたのは、1947年に、社名を「精機光学工業株式会社」から
「キヤノンカメラ株式会社」と変更したときでした。当時の登記簿や株主総会後に発表される営業報告書、
朝日新聞に掲載した広告など、すべて「ヤ」が大きくなっています。
では、なぜ「キャノン」ではなく「キヤノン」にしたかというと、全体の見た目の文字のバランスを考え、
きれいに見えるようにしたからなのです。
「キャノン」では、「ャ」の上に空白が出来てしまい、穴が空いたように感じてしまうので、それを避けたのです。
0131デフォルトの名無しさん
NGNG>>117に突っ込めねえアフォばっかりかよ
0132デフォルトの名無しさん
NGNG煽ってないで、突っ込みたいなら、おまえが突っ込めよ。
何、遠慮してるんだよ。
おまえ、いつも自分が言われてるから、誰でもいいから他人にアフォって言ってみたかっただけなんだろ?
0133デフォルトの名無しさん
NGNGこの板で釣りがしたいんならもっと高度なネタを持ってきなさい。
0134131
NGNG0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG0139131
NGNG0140デフォルトの名無しさん
NGNGデケデケ | |
ドコドコ < ぬるぽぬるぽぬるぽぬるぽぬ!!! >
☆ ドムドム |_ _ _ _ _ _ _ _ _ _|
☆ ダダダダ! ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨
ドシャーン! ヽ オラオラッ!! ♪
=≡= ∧_∧ ☆
♪ / 〃(・∀・ #) / シャンシャン
♪ 〆 ┌\と\と.ヾ∈≡∋ゞ
|| γ ⌒ヽヽコ ノ ||
|| ΣΣ .|:::|∪〓 || ♪
./|\人 _.ノノ _||_. /|\
ガッガッガッ
ドチドチ!
0141デフォルトの名無しさん
NGNG| __ 〆
____.____ | ─── \
| | ∧_∧ | | デケドコうっせーよ ヌルポ! \._ =二 ∧_∧
| |. ( ・∀・)| | _ |ヽ \ (・∀・# )/
| |⌒ て) 人 _ ―――‐ γ ⌒ヽヽ ⊂ つ ∈≡∋
| |( ___三ワ < > ――― ―― ―二 | |:::| 三ノ ノ ノ ≡ //
| | ) ) | ∨  ̄ ̄ ̄ ―――‐ 人 _ノノ (_ノ、_ノ _//
 ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ |
|
0142デフォルトの名無しさん
NGNG| \
____.____ | \_ ――― うっせーの外に出すんじゃねーよゴルァ!!
| | | | |ヽ ――― ― ⊂(´Д`#)
| | ∧_∧ γ ⌒ヽヽ ――――― ―  ̄ ̄__ 人 (⌒)⊂/
| | ⊂(・∀・ ;) ̄つ | |:::| ――――― ――――― < >彡 ,,ノ
| | ⊂ノ__つ人 _ノノ ∈≡∋ ――――― ―― . ∨
| | | | // ―― ――
 ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ | . _// ―
| /'|
0143デフォルトの名無しさん
NGNG低脳が記憶できる限界の言語だからか・・・
0144超初心者 多次元配列勉強中
NGNG問題、x[2][3]とy[3][2]の積を求めるプログラムを書け
これって総当りで全ての積を求めろって事なんでしょうか?
それと解を代入しておく変数はどういう形式にすればよいのでしょう?
a[2][3] or a[3][2]???
書いている事がちょっと分かりづらいかもしれませんが、アドバイスいただけたら嬉しいです。
本 定本明解C言語 入門編
0145デフォルトの名無しさん
NGNG行列か?
0146デフォルトの名無しさん
NGNG想像するに行列の積ではないかと思うんだが・・
問題文はホントにそれだけか?前に解説とかあるんちゃうか?
ググったら、こんなん出た。
http://www.bohyoh.com/Books/ReikaiA01/index.html
0147145
NGNGxとyの配列がどこかで定義されていないの?
されていれば単にx[2][3]とy[3][2]をかければいいんだけど。
0148144
NGNGすみませんm(__)m問題文説明不足でした。
恥ずかしいけど行列の積です。
x={1,2,3,4,5,6} y={1,5,5,3,8,1}
単にかけるってのはどういうことなんでしょう?
xのどことyのどこを掛けるのかが分からないんです。
馬鹿みたいな質問と思われるかもしれませんが・・・・。
>>146
解答が本当の意味で別冊って(T_T)
買うべきなんだろうか…。
0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNG0152デフォルトの名無しさん
NGNGプログラムが判らないのではなく、行列の積が判らないのなら板違い。
もしリアル中学生なら少し難しいかも知れんが、
ttp://homepage3.nifty.com/law_of_causality/math/mx13.htm
ttp://www007.upp.so-net.ne.jp/masema/matrix.html
このあたり。読んで判らなければ数学板へ逝け
/* おまけ */
int i,j,k;
int x[2][3]={1,2,3,4,5,6}, y[3][2]={1,5,5,3,8,1}, ans[2][2];
for (i=0; i<2; i++)
for (j=0; j<2; j++) {
ans[i][j]=0;
for (k=0; k<3; k++)
ans[i][j] += x[i][k] * y[k][j];
}
0153144
NGNG丁寧な解説まで入れて下さりありがとうございます♪
忘れていた記憶もよみがえり、しっかり理解出来ました!!本当に感謝。
また、スレ違いとも考えず失礼しました。
こんなことならもっと数学勉強しとけば良かったです。学生の頃は数学の使い道
なんて思い当たらなかったのに・・・・(パソコンもあんま普及してなかった)。
ちなみに中学生じゃありません。26、一応社会人(今日は代休)。
プログラミングの勉強を始めてまだ1週間・・・早くも挫折するとこだった。
ってかこの歳になって始めるのはやっぱ無謀なんでしょうかね?
書いてある事を理解するのもだんだんと遅くなってきてる・・・。
0154デフォルトの名無しさん
NGNG自分で挫折しそう、なんていってる時点でもうだめ。辞めなさい、会社もw
0155デフォルトの名無しさん
NGNGお前が無能なだけ。
0156デフォルトの名無しさん
NGNG早く結婚して子供作れ
少子化を防ぐことがお前にできる唯一の貢献
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGいや、むしろ親がそこそこエリートだったり、商売で成功しているほうが、子供に悲劇が待っている。
親は馬鹿でも貧乏でも、子供は清く育つもんだ。
おまえも、はやく結婚して子供作れ。
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG上限値 U 、下限値 L 、サンプリング N からなる sin波 の値を求めたいのですが、
うまくできません。
short i;
float radius = 0.0
for( i=0; i<100; i++ ){
radius += 0.1;
sin_value = sin( radius );
printf( "%f\n", sin_value );
}
上記だと -1〜1の範囲になってしまいます。解決方法を教えてください。
0161デフォルトの名無しさん
NGNGと
>-1〜1の範囲
と
もまえのプルグルム
のそれぞれ何に対応してるのか知らしめろ
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGすみません、、そのUとLの考慮の仕方を教えて頂けますか?
0164デフォルトの名無しさん
NGNGradius += 0.1;
sin_value = sin( radius );
これは
sin_value=sin(0.1*i);
にした方がよい。
0165デフォルトの名無しさん
NGNGそれって、sin波との関係もくそもないだろ?
5から100 までの乱数を得たいという場合を
考えれば、自ずとわかるんじゃね?
0166デフォルトの名無しさん
NGNGsin() の結果が -1〜+1 で、それを振幅 (U-L) にするんだから
sin_value = (sin(i*0.1) + 1) / 2 * (U - L) + L;
でいいんじゃね?
i*0.1に N が考慮されてないのは良いのか?って問題は残るが。
で、サンプリングて何さ?一周期をN分割しろって話?
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG構造体をコピーする関数はありますか?
Linuxでは bcopy(servhost->h_addr, (char *)&server.sin_addr, servhost->h_length);
上記で問題ないですが win なので bcopy に変わる関数が欲しいです
0169131
NGNG代入できるよ?
0170デフォルトの名無しさん
NGNGまたコテっちまった
俺ヴァカ
0171デフォルトの名無しさん
NGNGVBではオーバーフローするとエラーが出ていたんですが、
うちのCではエラーが出ません。。
Cでは一般的にオーバーフローでエラーは出ないものなのでしょうか・・・
友達に課題(?)を出されて頑張っているのですが、
もしも自分の持っているコンパイラだけ特殊だったら・・と冷や冷やしています。
初歩的な質問で申し訳ありませんが、どうかお願いしますm(_ _)m
0172デフォルトの名無しさん
NGNG標準では出ないよ。
オーバーフローしてバッファが壊れたかどうかを検出したりするツールもあるにはある。
フリーで低機能なものと商用でバカ高いものが。
0173デフォルトの名無しさん
NGNGunsined char x; x = 255; x+=1;
0174デフォルトの名無しさん
NGNG>標準では出ないよ。
>でないのが普通。
どちらも間違い。
標準ではundefined behavior(未定義の動作)であり、
エラーが出る保証どころか地球が爆発しない保証すらないのが「仕様です」。
ちなみに、符号付整数はオーバーフローしたら未定義の動作、
符号なし整数にはオーバーフローの概念自体が存在しない。
0175デフォルトの名無しさん
NGNGで、「標準では(エラーは)出ないのが普通」のどこが間違ってるの?
0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNGニホンゴワカリマスカ?
エラーが出る保証も出ない保証もないのが「標準」。
「未定義」については、それがどういう意味かをきちんと理解することが肝心。
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGニホンゴワカリマスカ?
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNGキチガイはお前と規格に書いてある
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNG>>171が釣りでなく本当の初心者なら、
Cは実行効率を求めているのでそういう実装に
なってないってだけ答えとけばいい。
0187デフォルトの名無しさん
NGNG必死だなw
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG0190171です
NGNGちょっとややこしいことになってしまいましてm(_ _)m
どうもご回答有難うございました
0191デフォルトの名無しさん
NGNG初心者が「ベテラン」に気を使うハメに・・・
逆だよな、逆w
0192デフォルトの名無しさん
NGNGどの辺をつかったらいいですか?関数とか。
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNGファイルの読み書きのサンプルはありますが、CSVをフィールドに分けるようなサンプルが全く見あたら
ないのは気のせいですか?
0195デフォルトの名無しさん
NGNGどうもありがとうございます。
あとネット探したらサンプル+解説を見つけました。
MixerOpen()関数とかを使うみたいです。ありがとうございました。。
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG悪名高いstrtokでいいじゃん
0198デフォルトの名無しさん
NGNGおい、これ忘れてるぞ
↓
┌─┐
|も.|
|う |
│来│
│ね│
│え .|
│よ .|
バカ ゴルァ │ !!.│
└─┤ プンプン
ヽ(`Д´)ノ ヽ(`Д´)ノ (`Д´)ノ ( `Д)
| ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
〜 〜  ̄◎ ̄ . ̄◎ ̄  ̄◎ ̄ ◎−>┘◎
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNGポインタのポインタ。
0201デフォルトの名無しさん
NGNGポインタのポインタ。
それで分からなかったら、これ嫁。
http://pc5.2ch.net/test/read.cgi/tech/1084956293/
0202デフォルトの名無しさん
NGNG>>174 の「標準」は「C言語の規格で定めた」と言う意味、
だと思った。
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNGと定義して「&rx」と書くとrxが存在するメモリ上のアドレスを示すんですよね?
これをアドレスの直接指定って言うんですよね?
int *prx=5;
と定義して「prx」 と書くとprxが存在するメモリ上のアドレスではなく、prxが指しているアドレス(5が存在するアドレス)を
示すんですよね?
「**prx」と書くとprxが存在するメモリ上のアドレスを示す(ポインタのアドレス)んですよね?
間違っていたらご指摘ヨロ
0205204
NGNGint *prx=5;
と定義して「prx」 と書くとprxが存在するメモリ上のアドレスではなく、prxが指しているアドレス(5が存在するアドレス)を
示すんですよね?
この変数のことをアドレスの間接指定、つまりポインタと言うのですよね?
「**prx」と書くとprxが存在するメモリ上のアドレスを示す(ポインタのアドレス)んですよね?
0206デフォルトの名無しさん
NGNG宣言の時の*と、間接演算子の*は微妙に違う。
宣言時の*は、その変数がポインタである事を表し、
間接演算子*はそのポインタの先にあるものを表す。
rxのくだりは合ってと思うよ。
**prxはちょっと違うな。
普段はポインタのポインタなんて、可変長の多次元配列使うときしかやらないけど、
それなら他のデータ構造の方が効率がいいと思うし。
0207デフォルトの名無しさん
NGNG> これをアドレスの直接指定って言うんですよね?
言わない。
> 5が存在するアドレス
違う。いわばそれこそがアドレスの直接指定(5はint *にキャストすべき)。
> 「**prx」と書くとprxが存在するメモリ上のアドレスを示す(ポインタのアドレス)んですよね?
全然違う。
0208204
NGNG0209デフォルトの名無しさん
NGNGアセンブラのimmediate addressやindirect addressと
ごっちゃになってるみたいだな。
0210デフォルトの名無しさん
NGNGスレ違いになるかもだが、C言語ポインタ完全制覇って本読んでみることをお勧めする。
オレはその本読んで分かった。
0211デフォルトの名無しさん
NGNGファイルサイズのみが欲しい場合,
以下のような方法より速い,もしくは簡単な方法ってある?
char c;
unsigned long i, filesize;
FILE* pfile;
pfile = fopen( "hoge.bin", "r" );
for( i = 0 ; c = fgetc(pfile) != -1; i++);
fclose(pfile);
filesize = i;
0212デフォルトの名無しさん
NGNGpfile = fopen( "hoge.bin", "rb" );
fseek(pfile,0,SEEK_END);
filesize=ftell(pfile);
0213デフォルトの名無しさん
NGNGvoid func(int a[])
仮引数の宣言では、配列の要素数は書いても、書かなくてもいいんですよね。ではどうして
多次元配列では以下のように最外周でない配列には要素数を書かなければならないんですか?
void func(int a[][100])
:
0214デフォルトの名無しさん
NGNGが意味不明。
> void func(int a[])
これだって「省けるのは最外周」だけだろ?
0215デフォルトの名無しさん
NGNGunsigned int a, b;で、たとえばそれが16bitだったとき、
bが40000で、aが1だったら、
a - b はいくつになるでしょう?
たとえば long int c; でそれが32bitだったら、
c = a - b;でcには何がはいるのが正しいですか?
0217デフォルトの名無しさん
NGNGコンパイラの気持ちになって考えてみよう
0218デフォルトの名無しさん
NGNGどっちが格上ですか?
0219デフォルトの名無しさん
NGNGttp://www.kouno.jp/home/c_faq/c6.html#0
ここを死ぬほど嫁。
0221デフォルトの名無しさん
NGNG自分の辞書に載ってない意味は間違いということにしてしまった方が楽だから。
0222デフォルトの名無しさん
NGNGsys/stat.h が使えるならstat使ったほうがいいんじゃないの?
0223デフォルトの名無しさん
NGNG174==203 だから、相手にしないほうがイイYo
0224デフォルトの名無しさん
NGNG>宣言時の*は、その変数がポインタであることを表し
漏れとは捉え方が違うな。
漏れは「int *p;」なら、
'p'がポインタ、という解釈ではなく、
'*p'がint型、という読み方をするよ。
藻前さんは「int* p;」って書く派なのかな?
#だから漏れはfunctionポインタがキモくて仕方ない。
0225デフォルトの名無しさん
NGNG「int型の *p」 というのと、「int型ポインターの p」というのでは後者
のほうが理解しやすいんじゃないかい?
0226デフォルトの名無しさん
NGNGstruct hoge **data
0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNG自分でちゃんと書いておきながらなにがわからないん?
それを晒さないと、>>227 のような回答しかないぞ。
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNGやり方キボンヌ
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG0234232
NGNG0235デフォルトの名無しさん
NGNG弁解は逆効果・・・
おまえ面白いなw
0236デフォルトの名無しさん
NGNGポインタ引数とか構造体で返すとかグローバル変数とか
推奨する/しないは別として
0237デフォルトの名無しさん
NGNG構造体で返す。
ポインターを渡して、その中に返す。
お好きな方をどうぞ。
0238デフォルトの名無しさん
NGNG2次元配列もどきを作るとか構造体のポインタを配列にしたとき位だな。
0239デフォルトの名無しさん
NGNG0240232
NGNGポインタ引数で返すのは
hoge(&i,&j);
みたいな感じでアドレスを渡せばいいんだと思うのですが
構造体の場合は構造体へのポインタを渡すということでしょうか?
0241デフォルトの名無しさん
NGNGいや、構造体をそのまま返す。
0242デフォルトの名無しさん
NGNGchar *p = (char*)malloc(7743);
サイズ変えたい場合はrealloc。
これ以上のサポートは期待するな。
0243デフォルトの名無しさん
NGNG・ポインタ渡し
・配列渡し(前項に含まれる)
・値返し
・外部変数
やりようはいろいろ
繰り返すが推奨する/しない以前の問題な
0244デフォルトの名無しさん
NGNGenum{ a = 1;
b = 2;
c = 4;
};
int flags;
flags |= a;
とかやりますか?それともビットフィールドを使いますか?
好みの問題ですかね。
0245デフォルトの名無しさん
NGNGビット単位の演算
「複数のフラグ」が16個とか32個とかに限定されるのがイヤだけどね
フラグで条件分岐しようかって場面でもうちっとよく考える
0246244
NGNG移植性とか考えた場合はビットフィールドなんですかね。
まぁいまどきint型ならだいたい4バイトなんでしょうけど。
あと、複数のフラグの中に、状態が4パターン必要で2ビットを
使うものがまざってたりすると・・・この4パターンのどのパターン
が立っているかを判別する場合、ビット単位演算だと右シフトして
マスクしてっていう必要がでてくるのかな?
0247デフォルトの名無しさん
NGNGswitch((flags & 6) >> 1) { case 0: case 1: case 2: case 3: ; } ってか?
switch(flags & 6) { case 0: case 2: case 4: case 6: ; } と一緒だろうがよw
0248デフォルトの名無しさん
NGNG0249244
NGNG0251デフォルトの名無しさん
NGNGあんたの方が正しい
処理系依存と処理系定義を混同すると間違えるんだよ
0252デフォルトの名無しさん
NGNG途中に複数ビットを扱うパターンがあるならビットフィールドの方が楽だね。
どっちみち、LSBから配置されるかMSBから配置されるか、エンディアンの問題含めて
可搬性は乏しいけど私はビット演算を一々コーディングするよりいいと思う。
0253デフォルトの名無しさん
NGNG外部とやり取りする可能性がある場合にはenumなり
#defineなりを使ったほうが無難。
0254244
NGNG今やってるのが、膨大な件数のデータがあって、それをファイルに
書き出したりするんで、とにかくデータサイズを縮小したいがために
ON・OFFフラグや4パターンフラグや1〜18の数値をとるものやら
いろんなものをint型などに収めようとしてたもんで、論理演算だと
数値とりだしたりするのに、シフトとかしたりして四苦八苦して
たのですが、素直にビットフィールド使えばいい気がしてきました。
アドバイスどうも!
0255デフォルトの名無しさん
NGNGぐぐってもいまいちヒットしなかったんで。
0256デフォルトの名無しさん
NGNGまともなコンパイラなら、ビットフィールド使っても自分でビット演算しても
最適化で実質同じコードを吐いてくるしね。
#寧ろマスクミスや符号拡張のミスがない分人間より賢かったりして。
0257デフォルトの名無しさん
NGNGまともでないコンパイラ: 自分のヘボをフォローしてくれない処理系
あっれー? なんでこんなにデカいんだろー おそいしー バグ再現しないしー
ぽくちんわかんなーい ねーねー外注にしよーよー
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNGありがとうございました。
やりたいことはできました。
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNG> いろんなものをint型などに収めようとしてたもんで、論理演算だと
> 数値とりだしたりするのに、シフトとかしたりして四苦八苦して
> たのですが、素直にビットフィールド使えばいい気がしてきました。
この部分だけ読めばまさにその通りだが、その前の
> 膨大な件数のデータがあって、それをファイルに
> 書き出したりするんで、とにかくデータサイズを縮小したいがために
ここ読んで、「あ、こいつハマるな」という予感が ;)
べつにビットフィールドにかぎらず、構造体をファイルに書いたり読んだりすれば
格納内のメンバーの格納のしかたが処理系依存だいう点でめんどうになる。
もちろん構造体じゃなくても、intをファイルにバイナリーで書いたらそのバイト順から
して処理系依存ではあるが、
ふつうの数値<<構造体<<bitフィールドの順にだんだん「処理系の差ではまる」のに気づく
確率が高い。まあ、逆に言えば差異をつい気にしないで書いちゃったのに早めに気づくので
よいとも言えるが。
0262デフォルトの名無しさん
NGNGファイルとの読み書きの部分だけ、シフトしたりこねくりまわしてる。
そうすれば、気をつける箇所が読む/書くの2関数だけになるので、かなり楽。
0263デフォルトの名無しさん
NGNGunsigned char c = 100;
unsigned long i;
i = (unsigned long) c;
としても i の値は 100 にならず,変な値になるよね.
i が 100 になるようにするにはどんなキャストすればいいの?
0264デフォルトの名無しさん
NGNG0265263
NGNGうんたしかにそうだった.
で,
unsigned char c = 100;
unsigned long* p;
p = (unsigned long*) &c;
このとき,*p が 100 になることを期待したいんだが,
ならない.
なんでか,おしえて
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNGキミはこのあたりのスレで滝に打たれてきなさい。
http://pc5.2ch.net/test/read.cgi/tech/1084956293/
0268デフォルトの名無しさん
NGNGchar **s;
{
printf("\t%s\n",*s);
*s[1] = 'e';
printf("\t%s\n",*s);
}
main()
{
char *s = "tako";
printf("\t%s\n",s);
swap(&s);
printf("\t%s\n",s);
}
参照渡しでswap()内で文字列を書き換える
上記のようなプログラムを組んだのですが
うまく動きません。
どうすればよいですか?
0269デフォルトの名無しさん
NGNG書き換えちゃだめ
0270デフォルトの名無しさん
NGNG・
・
char buff[16],*p;
p = strcpy(buff, "tako");
0271デフォルトの名無しさん
NGNG&cの次のアドレス(&c + 1)に何が入っているのか
そして、ビッグエンディアンなのかリトルエンディアンなのか、
わかったら答えられる。
0272271
NGNGlongなので &c + 1,&c + 2,&c + 3のアドレスの内容
0273デフォルトの名無しさん
NGNGもうひとつ。
>*s[1] = 'e';
(*s)[1] ではないかと。
0274273
NGNG逝ってきまーす♪
0275デフォルトの名無しさん
NGNGunsigned char c;
こうすると c はアドレス &c から sizeof(unsigned char) のオブジェクトを指し、
そのオブジェクトは unsigned char として解釈されるという意味。
unsigned long *p = (unsigned long *)&c;
こうすると *p はアドレス &c から sizeof(unsigned long) のオブジェクトを指し、
そのオブジェクトは unsigned long として解釈されるという意味。
つまりキャストを経たことで解釈対象のオブジェクトの大きさが変化している。
アドレス p + sizeof(unsiged char) からアドレス p + sizeof(unsigned long) の直前までは何が入っているかわからない。
ここで言うオブジェクトはメモリブロックと読み変えてもいい。
0276デフォルトの名無しさん
NGNGユーザに文字列の入力を求めます。
その場合、入力される文字列の長さは不定ですよね。
このとき、入力された文字列の長さに合わせて変数を確保することは可能ですか?
0277デフォルトの名無しさん
NGNGmallocである程度大きくとっておいて、入力途中で足りなくなったらreallocで増やす。
0278デフォルトの名無しさん
NGNG早速レスありがとうございます!
いまから試行します。
0279デフォルトの名無しさん
NGNGswitch((flags & 6) >> 1) { case 0: case 1: case 2: case 3: ; } ってか?
switch(flags & 6) { case 0: case 2: case 4: case 6: ; } と一緒だろうがよw
ビットフィールドは前者な
アセンブラ読めねえ奴が言う最適化は100%例外なくハッタリ
たまたま当たってもあくまで偶然、そいつに管理能力があるわけじゃない
0280デフォルトの名無しさん
NGNG処理系が一緒なら同じ構成の構造体は、パディングの位置も
一致しているのですよね?あとビットフィールドも。
0281デフォルトの名無しさん
NGNG基本的には一緒。
0282デフォルトの名無しさん
NGNGsocket通信をするプログラムA.exe(データをsocketで受け取り、
処理をして指定のファイルを作る)を作って、これをWINXP上で
「サービスとアプリケーション」に追加させ、PCを起動するたびに
裏で起動させようとしたのですが、なぜか起動しないのです。
A.exeを単体で起動すると動くのですが、サービスとして
起動させると立ち上がらないのです。
(色々調べたのですが、解決法が載ってなくて・・・)
なんか原因がわかる方がいましたら、教えてください。
ちなみにA.exeは、コンソールアプリのC++.NETでOSはXPです。
0283デフォルトの名無しさん
NGNG---------------------------
int myinit(int N, AI[])
{
int i;
srand(time(NULL));
for (i=0;1<N; i++){
AI[i]=rand() %N;
}
--------------------------
という,AI[i]にN個の値をぶち込むという関数なのですが,
コンパイルすると,最初の行について「)が必要」とコンパイルエラーに
なってしまいます.ちゃんと)入っているし,何度も消して打ち
直したりしたのですが,毎回怒られます.何が問題なんでしょうか.
分かる方おられましたらどうぞよろしく.
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNGそうですか、レスどうもです。
0287デフォルトの名無しさん
NGNGこの行以前をよく見てみ。
0289デフォルトの名無しさん
NGNGキミは向いていないから、
もうやめたほうがいいよ。
その方が将来的には幸福だよ。
キミ自身も、周りの人間もね。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNGおかげで}がなくても気づきにくくなってる。
0294デフォルトの名無しさん
NGNG自分で書いたソースとエラーメッセージを全部そのまま
コピペすべし。
0295283
NGNGインデント入ってたはずなんだけど…もう一回書いてみます.
最後の}は単にコピペのし損ないです.失礼しました
-----------------------
int myinit(int N,int AI[])
{
int i;
srand(time(NULL));
for (i=0;1<N; i++){
AI[i]=rand() %N;
}
}
---------------------
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG連続した半角スペースは削除されるので、
全角スペースにちかんしないといけない。
0298デフォルトの名無しさん
NGNG元気か山本君
0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNG の文字参照を使う方法もある
0301デフォルトの名無しさん
NGNG"1<N"ってお前……
0302デフォルトの名無しさん
NGNGぼるじょあがC/C++の宿題を片づけますYO! 24代目
ttp://pc5.2ch.net/test/read.cgi/tech/1086612317/
に行った方が良くないか?
0303デフォルトの名無しさん
NGNG学校をやめればいいじゃないか。
0304デフォルトの名無しさん
NGNG標準入力から入力したファイル名を入力してその名前をbufに格納したいです。
(その後に出てくる関数に、引数としてファイル名を渡したいので)
fgets(buf, sizeof(buf), stdin);
だと上手くいかないのですが
scanf("%s", &buf);
だと上手くいきます。
fgetsではうまくいかない理由と、scanfを使わずに上の動作を行いたいときはどうすれば良いか
教えて下さい。
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNGここからだ
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNGif(NULL != (p = strchr(fgets(buf, sizeof(buf), stdin), '\n'))) *p = '\0';
0309デフォルトの名無しさん
NGNGきもい
0310デフォルトの名無しさん
NGNG/* 二つのポインタを交換 */
#include <stdio.h>
main(){
int a=1,b=2,*s1,*s2,**x=&s1,**y=&s2,*tmp;
s1=&a;
s2=&b;
printf("*s1=%d\n",*s1);
printf("*s2=%d\n",*s2);
tmp=*x;
*x=*y;
*y=tmp;
puts("ポインタs1とs2を交換しました。");
printf("*s1=%d\n",*s1);
printf("*s2=%d\n",*s2);
}
**x=&s1がいまひとつわかりません。
どなたか、絵で説明してくれませんか。
0311デフォルトの名無しさん
NGNG絵で説明してほしかったらこっちにゆけ
http://pc5.2ch.net/test/read.cgi/tech/1083765346/
0312デフォルトの名無しさん
NGNG絵書けないから考え方のヒント。
int a=1;
int *b=&a;
と書いたら、
*b=&a;
じゃなくて
b=&a;
という解釈になる。
**x=&s1;
なんて代入はやってない
あえて書くなら
int** x;
x=&s1;
0313デフォルトの名無しさん
NGNG> int a=1,b=2,*s1,*s2, **x=&s1 ,**y=&s2,*tmp;
0314!312
NGNG0315デフォルトの名無しさん
NGNG~~~ ~~~
0317デフォルトの名無しさん
NGNGint *x, **y=b, z=3;
と書くのは
int *x;
int **y;
int z;
y=b;
z=3;
と書くのと一緒だ。
何でと言われても困る。偉い人がそうすると決めた。
あと、int* x;と int *x;と int * x;は全部同じ意味。
さっきの例は、遠回しに
int a=1,*s1,**x;
s1=&a;
x=&s1;
と書いてるのと同じ。
0318デフォルトの名無しさん
NGNGバカ?言っていることが矛盾してますが
0320デフォルトの名無しさん
NGNGその程度のことでムキになってると(ry
0323デフォルトの名無しさん
NGNG0324C初心者
NGNGputcharって何なんですか?
まだ習ってないんです。
0325デフォルトの名無しさん
NGNGhttp://www.google.com/search?hl=ja&lr=lang_ja&ie=sjis&q=putchar
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGなんて代入はやってない
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNG放置汁
0330デフォルトの名無しさん
NGNG> **x=&s1がいまひとつわかりません。
ポインタへのポインタ **x がポインタ *s1 のアドレスを参照しているだけでは?
0331デフォルトの名無しさん
NGNG死んでくれ
0332デフォルトの名無しさん
NGNGなんで?
0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNGint a=1,b=2,*s1,*s2,**x=&s1,**y=&s2,*tmp;
を1行に書いているところだ。1行にまとめるメリットなんてないし、
みづらいし、初心者が勘違いしやすいし。
もう、アフォか馬鹿かと(ry
0339デフォルトの名無しさん
NGNG諦めろ。初心者に勘違いするなというには
C の仕様は糞過ぎる。
0340デフォルトの名無しさん
NGNGあとポインタとそうでないものは別にした方がいいね。
0341デフォルトの名無しさん
NGNG漏れもそうお思ったな。
なんでもかんでも1行に書くのは悪い癖だ。
いわゆるBasic上がりの厨にしか見えない。
int a=1,b=2;
int *s1,*s2,*tmp;
int **x,**y;
s1 = &a;
s2 = &b;
x = &s1;
y = &s2;
こう書けば素直に理解できないか?
0342デフォルトの名無しさん
NGNGポインタの初期化はしちゃってもいいと思うけど、型ごとに分けるのは同意。
今更だけど、intとint *、それにint **は違う型なのにごちゃ混ぜにして変数を定義できる仕様は糞だなぁ。
0343デフォルトの名無しさん
NGNGっていうか、理解してないからごっちゃに書いてしまう。
理解しようとおもったら、違う物はわけて書いてみるとか
工夫しないと、意味はわからなくても、int int * int ** は
見た目違うんだからさ。
0344デフォルトの名無しさん
NGNGが1 GHz とすれば1 秒間に何命令実行できるか。
2. ふたつの画像をスーパーインポーズ合成するには、(i) 両画像の同じ位置の画素値の
読みだし、(ii) 整数の加算および除算を各1 回、(iii) 計算結果をメモリに格納、の操
作を各画素について行う必要がある。1. と同じマイクロプロセッサで100 万画素の
画像を処理する場合にデータロード-演算-ストアに要する正身の時間を計算で求めな
さい。
これの2に答えてください。
板違いでしょうけどおねがいします。
0345デフォルトの名無しさん
NGNGアセンブラの方にいけばマシだったのになぁ
0346デフォルトの名無しさん
NGNG0347デフォルトの名無しさん
NGNGネタ
0348デフォルトの名無しさん
NGNG1[ms]だね。
0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNGあーしかし2画像あるわけだから(ry
0351デフォルトの名無しさん
NGNGってのは配列の個数宣言しなくてもできるようですが
適切な配列数を自動的に用意してくれると考えていいんでしょうか?
0352デフォルトの名無しさん
NGNG考えていいんです。
最後に '\0' が付く (従って str は 6 バイト) 事を忘れなければ。
0353デフォルトの名無しさん
NGNG仮にsizeof str==5だと思っていたとして、キミは何を意図してそれを書いたんだ?
0354デフォルトの名無しさん
NGNGぼるじょあの宿題スレで意味わからんツッコミをしたやつが
居たから混乱したんだろう。
0355デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
main()
{
printf("Hello\n");
}
こんなソースをコンパイルした場合に、
Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)
と出ているんですが、何が原因でしょうか。
初めてBCCを使うんで、何とか初期設定が終わって、コンパイルできるか試したんですが…
0356デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1054390397/
0358デフォルトの名無しさん
NGNGint judgeA(object obj1,object obj2){
int res
if((fabs(obj1.x-obj2.x)<obj1.rad+obj2.rad) && (fabs(obj1.y-obj2.y)<obj1.rad+obj2.rad)){
res=TRUE;
} else {
res=FALSE;
}
こんな感じであたり判定を作ろうとしたのですが、
judgeA関数でobjectを使えないとか言うエラーが出てきて上手くいきません。
正しくはどうすればいいのか教えて下さい。
0359デフォルトの名無しさん
NGNGobjectなんて型はないから。
objectの前にstructをつけろ。
0360デフォルトの名無しさん
NGNGtypedef struct {int x;int y;int rad} object;
0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNGいる。
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNG教えてください。
関数へのポインタってどういう風に役に立つんでしょうか?
ポインタなんて使わずに直接その関数を呼び出せばいいと思うのですが・・
0366デフォルトの名無しさん
NGNGStrategy パターンや、Stateパターンが、実装できます。
0367デフォルトの名無しさん
NGNGqsort()について調べれば分かります。
0368デフォルトの名無しさん
NGNG適当な文字列を文字コードにして吐き出したいんです。
変換前:2ch
変換後:080391(適当)
0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNGそうだねw
0372デフォルトの名無しさん
NGNG関数のポインタが載ってて、そこに使用例書いてあるだろう・・・。
0373デフォルトの名無しさん
NGNGchar c = 'a';
printf("%c, %d\n", c, c);
0374デフォルトの名無しさん
NGNGそういう基本的な本に書いてある例なら、「直接関数呼び出せばいいんじゃないの?」
としか思えないのです。
私は初心者なのでよく分からないのですが、Strategy パターンや、Stateパターン、
qsort()について調べれば分かるってことですかね。
0375デフォルトの名無しさん
NGNG外に書くかで悩んでます。
自作関数の中にfor文を書くとbreakが使えるのですが、for文の中に自作関数
を書くと自作関数からreturnを得て、その数値をifで判定してbreakってなるんですけど
どっちがいいんでしょうか?
0376デフォルトの名無しさん
NGNGまぁ、困らないうちは無理に使わなくて良いんだけどな。
0377デフォルトの名無しさん
NGNGありがとうございます。
for (i=0;ch[i] !='\0';i++){
printf("%x",ch[i]);
}
結果:326368616e6e656c
これを変数に渡すにはどうすればいいのでしょうか?
0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNG状況による。そのループが何のためのループなのか。
0380デフォルトの名無しさん
NGNG作っているレベルが低いってこともあるのですが、今まで困ったことはないです。
でも、使わないと出来ないことってあるんですね。
今度調べてみます。
0381デフォルトの名無しさん
NGNGおまえ、今とっても大事な分岐点にいる。
構造化とは何か、いちばん根っこを問われてる。
なぜ、breakが必要になった?
なぜ、途中returnでフラグを返す必要が出た?
自分で考えないと、教条主義じゃ意味ないが
1つだけヒントを言っておく。
その関数、アフォ対応に凝りすぎてないか?
0382デフォルトの名無しさん
NGNGなんかワロタ。でもある意味同意。
0383デフォルトの名無しさん
NGNG>>378が言うようにsprintf()を使う。
char buf[128] = "";
for (i = 0; ch[i] != '\0'; i++)
sprintf(buf + strlen(buf), "%x", ch[i]);
0384デフォルトの名無しさん
NGNGありがとーーー!!!!
これで6時間悩んでた_| ̄|○
0385デフォルトの名無しさん
NGNGint main(void)
{
signed short a=0xFFFF;
a=a>>1;
:
:(省略)
:
テストプログラムを作っていました。
これをコンパイルすると、
『定数値が切り捨てられました。』
『'const int' から 'short' へ切り詰めます』
と言う二つの警告が出るのです。
オーバーフローが起きてるはずはないと思うんですが。
なぜでしか?
0386デフォルトの名無しさん
NGNG1はint
だからa>>1のaはintに格上げされて計算される。
それをa=のところでshort intの変数に入れようとするから・・・ね?
あと関係ないけど、charでないかぎりsignedはいらない。
0387386
NGNGだから間違っているかも。
0388デフォルトの名無しさん
NGNGいや、マジでありがとうございます!
他の掲示板でも聞いて回ってたんですが、なんかやっと納得できる答えに
めぐりあえた感じです。
書き込んでなかったけど、同じ方法intでやったら警告でないんですよ!
ほんとすっきりしました!
どうもです!m(._.)m
0389デフォルトの名無しさん
NGNG0xffffはsigned shortに収まらないので、そういうメッセージがでたんでしょ。
aに何を入れたかったんだろう?
0390デフォルトの名無しさん
NGNGおいおい・・・
0391386
NGNG↑そうか。constだから初期化の時点での警告か。
やっぱり見当違いだった(恥
0392385
NGNGまずconstがなんぞやから勉強してきます。 _| ̄|○
0393デフォルトの名無しさん
NGNGオーバーフローが起きてるはずはないと思う根拠くらい示してくれないとまともな答えは出んな。
0394デフォルトの名無しさん
NGNGおいおい・・・
0395375
NGNGプログラミングは答えを見つけるのが大切なのではなく、決められた答えに対して
いかに問題を作るかというのが大切なんだと思いました。
動くことが「答え」ならば、どういうアプローチで動かすかが「問題」になります。
答えは一つですが、問題は何十通り何百通りもありその中でベストな問題を
選択することがプログラミングのような気がしてきました。
なんか、悟ったようなこと書いてすんません。
0396386
NGNGん?今度はおかしなことは言っていないはずだけど?
ここで言っているconst intって0xFFFFの(型の)ことでしょ?
0397デフォルトの名無しさん
NGNGプログラムの処理スピードを調べるには
どうしたらいいですかね? やっぱ無いですか?
ifという条件文が入るとどれだけスピードが落ちるのか
とか結構気になります。
0398デフォルトの名無しさん
NGNGclock
0399デフォルトの名無しさん
NGNGconstかどうかは今回の問題点じゃないでしょ。
385の環境がなんだかわからないが、まず間違いなくshortが16ビットなんだと思う。
で、おそらくこの環境でsigned short が扱えるのは-32768から-32767。
に対して0xffffは65535だろ。オーバーフローしてるじゃん。
0400デフォルトの名無しさん
NGNGちっ、typoしちまった。
-32768 から 32767 ね。
windowsマシンならこの範囲だろう。
0401デフォルトの名無しさん
NGNG前聞いたときもそれと同じ回答が返ってきましたが、
0xffffは-1だと思ってたんですが。
あと、自分の環境ではshortは16ビットだと思います。
0402デフォルトの名無しさん
NGNGclock_t clock( void ); (´▽` )!!
どうもです。
0403デフォルトの名無しさん
NGNGtime
GetTickCount
QueryPerformanceCounter
rdtsc
0404386
NGNGconstかどうかが問題とは言っていないよ。
コンパイラはconst intと言っているのだから、問題はa=a>>1のところではなく、signed short a=0xFFFFのところだね。と。
0405デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void)
{
signed short a=0xFFFF;
a=a>>1;
return 0;
}
0406デフォルトの名無しさん
NGNGはい、今確認しましたが、上記と同じ警告が出ます。
0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNG>0xffffは-1だと思ってたんですが。
コンパイラはそうは思ってくれなかったわけだ。
-1を入れたいなら-1と書こう。
>>405
警告が出るかどうかはコンパイラやコンパイルオプション次第でしょ。
0409デフォルトの名無しさん
NGNGそれはそうなんですが、「どうしてかな〜」と
とても気になっていたものでして(;´Д‘)
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG今更んなこと言わなくても、昔の人の名言が全て。
「プログラム = アルゴリズム + データ構造」
0412デフォルトの名無しさん
NGNGどこをどう調べればいいやら、あんまよくわかりません。 (´・ω・‘)
0413デフォルトの名無しさん
NGNGa.c(4) : warning C4305: 'initializing' : 'const int ' から 'short ' へ切り詰
めます。
a.c(6) : warning C4244: '=' : 'int ' から 'short ' に変換しました。データが失わ
れているかもしれません。
0414デフォルトの名無しさん
NGNGに変えて怒られなければ、>>399の見解であってるんじゃねーの?
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG低級言語的な使い方では存在価値がある。
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG-0x01
0420デフォルトの名無しさん
NGNGプププ君みたいな低脳こないほうがいいよ
正しくは0x-01だ
0421デフォルトの名無しさん
NGNG仮に君の環境が16bitだたとするある。
そうだとしても、
符号無し整数を符号付き整数に変換して
なおかつその符号無し整数の値が符号付き整数で表せない範囲
だた場合、結果は処理系定義になるある。
だから、-1 の代わりに 0xFFFF などと書くのは止めれ。
0422421
NGNG-1 を 符号無しに変換した場合、
16bit 環境なら、0xffff に成ると期待して良いあるよ。
たとえ君の環境での負数の表現が2の補数で無かったとしてもね。
0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNG作成せよ。
入力した整数は int 型配列 nums に代入すること。また最大値と最小値の 差は、int 型
の配列 vc の最初の no 個の要素の最大値と
最小値の差を 返す関数 widtharray(int vc[], int no) を作成して計算せよ。 即ち、
main 関数の中での widtharray の呼び出しは、
widtharray(nums, 6) で行う。
0427デフォルトの名無しさん
NGNGそれは変じゃないか?
元の式の値が変換後の型で表現できない場合の結果が未定義なら
(unsigned)-1 はギルティやん
符号なしでフェンスが欲しいときは~0uちゃうのか
それから、この流れでUSHRT_MAXが出てこないのはネタか?
0428デフォルトの名無しさん
NGNGうわぁぁん騙された。
0430デフォルトの名無しさん
NGNGだうと
~0はビットを反転するから、bit表現がオール1
になる。その数値としての値はモロに負数の表現方法に
依存することになり、処理系依存。
signed -1 => unsigned の変換は modulo 2^(ビット数)
で行われるから、2進数でオール1になる。ビット表現は
その処理系で適切なものが選択されるからそれがオール1になる
保証は全く無い。
0431デフォルトの名無しさん
NGNG~とuの評価順序は?
0432デフォルトの名無しさん
NGNGビット表現が「その処理系で適切なものが選択される」のに
modulo 2^(ビット数)と決めてかかれるのか?
0433デフォルトの名無しさん
NGNG規格書にはそう書いてるよ。
0434デフォルトの名無しさん
NGNGよく読めよ、言ってること矛盾してるだろ
0435デフォルトの名無しさん
NGNGおまえさんの言う「ビット表現」とは、符号ビットのことか、それともデータビットのことか
一方は未規定、他方は(ピー)表現と書いてあるが
おまえさんの話はそのへんをはっきり言ってない
0436デフォルトの名無しさん
NGNG物理的なビット表現をいじると明示的に書いている。
一方、整数 (integral type) は物理的なビット表現
(負数の表現方法を含む)については全て処理系依存
だとしている。
ちなみに、さっき「2^bit数」と書いたけど、正確には
「符号無し整数で表される最大の数+1」を
君達が分かりやすいように書き換えたのだがそれが
誤解を与えたことは移管に思う。
0437436
NGNG数学的に
「符号無し整数で表される最大の数+1」を法とする剰余系
で定義されている。
符号付き整数を符号無し整数に変換するときも
この数学的な意味に沿って変換が行われる、と定義されている。
0438デフォルトの名無しさん
NGNGうだうだ言いだす前に「ビット表現」とは何のことを言っているのか、はっきりさせてからにしろ
「処理系依存」とは処理系定義か未規定か未定義か、いずれにしても「全て」じゃねえぞ
最後の4行は意味不明
0439デフォルトの名無しさん
NGNG符合なしの話に符号付きが出てくること自体おかしいと
まだ気づかないのか?
0440初心者Lv0
NGNGどうしたらよいでしょうか?
自分でもいろいろ試してみたいのですが設定とかは変える必要ってあるのですか?
0441デフォルトの名無しさん
NGNG[F5]ではなく[Shift]+[F5]
0442デフォルトの名無しさん
NGNG慌てなくていいからじっくり考えとけ
夕方くらいには戻る予定だ
0443デフォルトの名無しさん
NGNG0444初心者Lv1
NGNGできました!ありがとうございます、ちょっと感動^^
自分は[Shift]+[F5] ではなく[Ctrl]+[F5]だったのですがソフトの違いか何かですか?
0445デフォルトの名無しさん
NGNGwhile( true ) {
こんな風に1行にまとめる人と、
while( true )
{
2行にする人いるだろ?
前者の方がオレは好きなんだけど、try は
try {
こう書くと変な感じがするから、統一性を持たせたいなら
try
{
while( true )
{
とすべきだよな。
みんな、どうよゴルァ。
0446デフォルトの名無しさん
NGNG「変な感じがする」ってのは主観なのでなんとも。
ともあれコーディング規約ネタは専用のスレが二つぐらいあったので
そっちでやって欲しい気が
0447デフォルトの名無しさん
NGNG( 1 )
{
}
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNGなってしまうが。。。(name space内だと関数も
ネスト内のような扱いなのか?)
0450デフォルトの名無しさん
NGNGとりあえずここはCスレなのでnamespaceは無い
0451デフォルトの名無しさん
NGNG0452449
NGNG0453デフォルトの名無しさん
NGNG上のプログラムの、以下の部分がよくわかりません。一行ずつ解説して頂けませんか?
if( *word ){ /*コメントを入れてください*/
*last_word++=word; /*コメントを入れてください*/
for(;*word;++word) *word=tolower(*word); /*コメントを入れてください*/
if( last_word == word_list+sizeof(word_list) ) break; /*コメントを入れてください*/
}
0454デフォルトの名無しさん
NGNG> while( true ) {
> こんな風に1行にまとめる人と、
> while( true )
> {
それ以前に、
空白あけろ
空白あけるな
空白あけるな
中括弧以前の問題!
0455デフォルトの名無しさん
NGNGVisual BasicのSendKeysみたいな事をLinux+C言語でやりたいんです。
つまり「標準入力(キーボード)で特定のデータを入力した」
ような事を行わせたいのです。
どうしたらいいのか見当がつきません。
ヒントでもいいからお恵み下さい。
0456デフォルトの名無しさん
NGNGfor (*last++ = p; *p != '\0'; p++)
*p = tolower(*p);
if (last == wlist + sizeof(wlist))
break;
}
0457デフォルトの名無しさん
NGNGべきも糞もねえんだよ
勝手な俺理論でコーディング基準を破るな
キョーレツくだらねえことで無駄な喧嘩を売り歩くな
~~~~~
わかるか? わかんねーから「べき」とか言ってるんだろうな
そんなのは伺いをたてることであって
こっちから押し付けに行くことじゃない
0458デフォルトの名無しさん
NGNG2chなんだろうなあ。
0459デフォルトの名無しさん
NGNG2の補数方式で、-1が0xffffだったら、
1の補数方式では、0xffffは-1じゃなくて-0なんじゃないの? -1が0xfffeで
0460デフォルトの名無しさん
NGNGwhile
(
--i
)
{
putchar("H ELLO"[i]);
};
0461デフォルトの名無しさん
NGNG俺の頭が悪いんですかね
0462デフォルトの名無しさん
NGNGこのセミコロンはなんだ!
0463デフォルトの名無しさん
NGNGありうるね
0464デフォルトの名無しさん
NGNG「ありうる」かどうかではなくて、「そういう定義だろ?」っていう意味です。
0465デフォルトの名無しさん
NGNGif( *word ){ /*WORDが0でなければ*/
*last_word++=word; /*last_wordが指し示す先にwordを代入したあと、last_wordをインクリメント*/
for(;*word;++word) *word=tolower(*word); /*wordが0になるまで小文字に変換する*/
if( last_word == word_list+sizeof(word_list) ) break; /*last_wordがword_listの終端ならループを抜ける*/
}
0466デフォルトの名無しさん
NGNGwhile (--i > 0)
putchar("H ELLO"[i]);
改良するなら
for (i = 5; i >= 0; i--)
putchar("H ELLO"[i]);
ちなみに、iが0になったときは実行されないのでは?
0467デフォルトの名無しさん
NGNG具体的な処理系の例を挙げないとSFの域を出てないだろ
0468デフォルトの名無しさん
NGNG標準入力でいいのなら、パイプ開いてテキスト流しこむ。
GUI(X)でのイベントの送り方は忘れた。
0469デフォルトの名無しさん
NGNGあ、こいつやっぱりわかってないな ;-)
ちゃんと「2の補数形式で」ってかいてあるのに、どうやらそれの意味が理解できないらしい。
やーい
0470デフォルトの名無しさん
NGNGやーい
~~~~~~~~~~~~~
台詞がないねw
具体例が出ない以上しかたないよな
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG痛さ度は7:3で469のが痛かった。
470まで読んだ。
痛さ度は8:2で470の方が痛くなった。
0474デフォルトの名無しさん
NGNG0x0000 = +0 なら 0xffff = -0 で、0x0001 が +1 なら 0xfffe = -1 となる。
そういうシステムが、現在使用されているかどうかは不問。
Cでは、存在するものとして扱わなければならないということだけだ。
0475デフォルトの名無しさん
NGNGけっこうあるよん。
> Cでは、存在するものとして扱わなければならないということだけだ。
昔はもともとそういう実装でもいける言語仕様だったわけですが、
一時期は「そんなものはない」ってことにしてしまいたかったけど、
1980年以来たくさん流入したFortranユーザーたちの使う処理系も
考えると、どけちゃえなかったのよねー > 1の補数マシン
0476デフォルトの名無しさん
NGNG> ちなみに、逆の場合、つまるとろこ、
> -1 を 符号無しに変換した場合、
> 16bit 環境なら、0xffff に成ると期待して良いあるよ。
> たとえ君の環境での負数の表現が2の補数で無かったとしてもね。
は、まったくのウソじゃん。
0477デフォルトの名無しさん
NGNG422 == 463 == 467 == 470 かー
かっこわるすぎー
0478デフォルトの名無しさん
NGNG>422 == 463 == 467 == 470
A == B == C == D
これがTRUEになるABCDの組み合わせを述べよ。
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNG良いある算数
だろ、もうちっとヒネれよ
0481427
NGNG(unsigned)-1
は正しいのかよ?
早く答えろよ
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNG中傷しかできないアフォはこの板から出てけ
0484デフォルトの名無しさん
NGNG内容を確認せずに言ってしまった。スマソ。
ちなみにどこが中傷かは皆目見当がつかんが。
0485デフォルトの名無しさん
NGNG詳しく教えて下さってありがとうございました。
0486デフォルトの名無しさん
NGNG符合なしの-1なんぞ言い出したのが誰だか確認しろ
0487デフォルトの名無しさん
NGNG確認したよ。ごめんねー。
0488デフォルトの名無しさん
NGNGhttp://www.retecool.com/braindead/maggots-in-brain.jpg
オマエの頭ん中か?
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNG技術的な話ができねえ奴は消えろ
0491デフォルトの名無しさん
NGNG昨日HSPスレで暴れてた馬鹿だろ?
http://age.tubo.80.kg/age01/img-box/img20040620002231.html
Cを使う者として俺らはお前を認めない。消えろ。
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNGCなんて何にも理解してないんじゃないの?
0494デフォルトの名無しさん
NGNG|も.|
|う |
│来│
│ね│
│え .|
│よ .|
バカ ゴルァ │ !!.│
└─┤ プンプン
ヽ(`Д´)ノ ヽ(`Д´)ノ (`Д´)ノ ( `Д)
| ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
〜 〜  ̄◎ ̄ . ̄◎ ̄  ̄◎ ̄ ◎−>┘◎
0495デフォルトの名無しさん
NGNG理解してるかどうか試せないのかw
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG「で」か「を」かどっちだ? 肝心なところを省略するな
0499デフォルトの名無しさん
NGNG比較対象にしようとすることが間違いで言語の適性とかそんなことは考えない。
「虎の威を借る狐」に過ぎない。
0500デフォルトの名無しさん
NGNG比較ってどんな比較だよ
ソース示せないアフォはこの板から出てけ
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG>>384
アセンブラができることを自慢するな。そんなもん必須だボケ。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
433 :デフォルトの名無しさん :04/06/15 22:04
>実は何もできません。都合が悪くなると逃げます。
>* 言 う だ け な ら 誰 で も *
これ言いたかっただけだろ。もう中学生レベル。
俺はアセンブラはZ80とXアセンブラしか知らん。
つーか俺に指図すんな凡夫。
こんな奴がC一つとっても出来ると思うか?
こんなのはCどころかVBさえ危ういんじゃないの?
0503デフォルトの名無しさん
NGNG>こんな奴がC一つとっても出来ると思うか?
>こんなのはCどころかVBさえ危ういんじゃないの?
実証ができず推測しかできないアフォはこの板から出てけ
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNGどういう意味ですか?
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNGHSPは遅いし低機能だけどGUIは弄りやすいし簡単なことは一通りできてしまう。
何を比較するのか?機能?簡単さ?比べ物になんないだろ。
極端に言えばエクセルとワードを比較するようなもんだぞ。
同じアプリだからといって優劣はつけられないだろ。優れた点もあるし劣った点もある。
その比較対象を絞れば(ex: 表計算能力とか)そりゃできるだろうよ。
でもそれは本当に正しい比較なのか?ワードで表計算するのか?
そんな簡単なことも知らない奴はプログラムするべきじゃないな。
身近な例を出せばCとC++を比較してどっちがいいって話だ。
0508デフォルトの名無しさん
NGNG推測?そんな馬鹿な。
アセンブラができることを自慢するな。そんなもん必須だボケ。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
俺はアセンブラはZ80とXアセンブラしか知らん。
アセンブラ必須って言っておいて普通Cで使うであろうアセンブラは8086だろ。
そんな論法的にも「できません。」って言ってるような奴にできたらすごいな。ああすごいよ。
0509デフォルトの名無しさん
NGNGスレ違い
こちらへどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1085915001/
0510デフォルトの名無しさん
NGNGインラインアセンブラの話ね。一応書いとくと。
0511デフォルトの名無しさん
NGNG板違い
マ板へどうぞ
0512デフォルトの名無しさん
NGNGhttp://age.tubo.80.kg/age01/img-box/img20040620002231.html
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNGどこまでわかっているかを言ってみ
不足分の補充か、誤りの訂正から始めようや
0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNGアセンブラは言語仕様がシンプルなんで対応表を基にして書けばいいし
とにかくCコードのコアはアセンブラで記述するのはデファクトだろう
0517デフォルトの名無しさん
NGNGこちらへどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1085915001/
0518デフォルトの名無しさん
NGNG古典の先公になれ。同じこというから。
0519デフォルトの名無しさん
NGNGそれをいうならそもそもCも(ry
0520デフォルトの名無しさん
NGNG狭すぎ
0521デフォルトの名無しさん
NGNGああすごいな。見習いたいなw
C言語は本で独習しましたが何か?
0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNG自分で見つけられないなら買え
0526デフォルトの名無しさん
NGNG欲しいの?
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG用語がわかんねえんだろ
翻訳環境のことだよ
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNGコンパイル・リンク時に確保されるのが「静的」
実行時に確保されるのが「動的」
0531デフォルトの名無しさん
NGNG^L はどういう意味なのでしょうか。
例えばemacs21.3ではemacs-21.3/src/emacs.c の288行目、393行目などで
見かけます。
どなたかよろしくおねがいします。
0532デフォルトの名無しさん
NGNG0533531
NGNGこれを頼りにいろいろ調べます。
0534デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct node{
char name[10];
struct node *ptr;
}
main(){
struct node *root=NULL;
printf("%s\n",root->name);
root=(struct node *) malloc (sizeof(struct node));
printf("%s\n",root->name);
strcpy(root->name, "a");
printf("%s\n",root->name);
free(root);
printf("%s\n",root->name);
}
実行結果は
(null)
[@
a
[@
となります。自分はfreeというのはmallocをする前の状態にもどすための関数、だと理解していますが、実行結果を見てみるとどうも違いますね。mallocをする前の状態に戻す、つまり、実行結果を
(null)
[@
a
(null)
となるようにしたいのですが、どうすればいいのでしょうか?どなたか教えてください、お願いします。
0535デフォルトの名無しさん
NGNGstruct node *root=NULL;
printf("%s\n",root->name);
の時点でsegmentation faultになると思います。
rootの指すstruct node領域がないからです。
0536デフォルトの名無しさん
NGNGでもメモリ解放したら前と値変わるのでわ?
0537デフォルトの名無しさん
NGNGfree()は単純にメモリを解放する関数。
ただ、解放した分使用可能なメモリが増えるかといえば、
一概にそうとはいえない(環境による)。
ちなみにfree()した領域にアクセスしてはいけない。
free(p);としても、pの持つ値は絶対に変わらない。
何故、絶対に変わらないのか分からないなら、
それはポインタに対する理解が足りていない証拠。
0538デフォルトの名無しさん
NGNGこういうマクロを使っている人がいるかもね。あとfcloseなんかも。
0539デフォルトの名無しさん
NGNG#define Free(p) ((void)(free(p),(p)=0))
こうした方がいいかな。
0540デフォルトの名無しさん
NGNG#define Free(p) (free(p), (void)(p) = 0)
0541デフォルトの名無しさん
NGNG#define Free(p) (free(p), (void)(p = 0))
0542デフォルトの名無しさん
NGNGp = &x;
++p = &y;
〜
Free(--p);
0543デフォルトの名無しさん
NGNGそれでもいいけど、>>539はカンマの両側を括弧でくくっているから、free(p),(p)=0の戻り値(?)をvoidにキャストしていて大丈夫だよ。
0544デフォルトの名無しさん
NGNGうわわ、ほんとだ。ごめん。(void)free(p)に見えてた。
0545542
NGNGp = malloc(sizeof(*p) * 2);
*p = x;
*++p = y;
〜
Free(--p);
こんなことすると、悲しい。
0546デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <string.h>
struct node {
char name[10];
struct node *ptr;
} NODE;
typedef struct node NODE;
main()
{
NODE *root = NULL;
if ((root = (NODE *)malloc(sizeof(NODE)) != NULL) {
printf("%s\n", root->name);
strcpy(root->name, "a");
printf("%s\n", root->name);
free(root);
printf("%s\n", root->name);
}
}
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNG> こういうマクロを使っている人がいるかもね。
実際やってるやついる。というか、マクロにさえせずに毎回、NULLいれてるのよ。
ようするに、無効になったポインターをまちがって使わないようにってことみたいだけど、
そんなことをするってのは、ようするに、コードのロジックを把握できてないのよね。
もともとは大人数で分担してやるきたないソースにときどきみられるやりかたなんだけど、
じゃあ、ふつうの代入文で、使わなくなった変数にわざわざ0いれて回るのかよ!ってことだ。
0549デフォルトの名無しさん
NGNGSafariとはかぎらないね。うちのLinuxのブラウザーでもバックスラッシュが書けない。
Safariは昔は書けなかったけど、いまはかけるってきいたけど?
0550デフォルトの名無しさん
NGNGprintf("hello, world\n");
0551デフォルトの名無しさん
NGNGそうなのか。
~を〜、\を\と書く人はSafari使いだけだと思っていた。
0552デフォルトの名無しさん
NGNGprintf("hello, world\n");
0553デフォルトの名無しさん
NGNGprintf("hello, world\n");
0554デフォルトの名無しさん
NGNG> } NODE;
NODEはいらないんじゃない?
0555デフォルトの名無しさん
NGNGdriver/block/elevator.cなるファイルに
inline関数が沢山定義されいるのですが、
インライン関数を.Cにて定義する意味が分りません。
なぜヘッダーにて宣言しないのでしょうか?
0556デフォルトの名無しさん
NGNGstaticの代わりじゃね?
0557デフォルトの名無しさん
NGNGこういうコーディングスタイルってどうなんでしょうか?
サブルーチンを定義したいだけなら、マクロを使うべきという
気がするんですが、こういう考えは古いんですかね。
0558デフォルトの名無しさん
NGNG例えばelv_rq_merge_ok()というものがあるんですが、
これはsttic関数ではありません。そして、
この関数に対して、他の*.cから呼び出してるような
記述があります。inline関数が外部から呼び出せる?
んー、よくわかりません。
0559デフォルトの名無しさん
NGNG二重開放のごたごたから逃れることはできる。
ちなみに、
> じゃあ、ふつうの代入文で、使わなくなった変数にわざわざ0いれて回るのかよ!ってことだ。
に関しては、変数の使いまわしをしない限り後で参照しても特に問題無いことが多い。
0560デフォルトの名無しさん
NGNG>二重開放のごたごた
>変数の使いまわしをしない限り後で参照
これらを邦訳すると「ヘボ」。
>から逃れることはできる。
逃げるより根治が必要。
>問題無いことが多い。
人的に深刻な問題である。
根治が必要。
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNGvoid* malloc2(...);
void* malloc3(...);
void* malloc4(...);
誰がこんなことすんだよw
0563デフォルトの名無しさん
NGNG後で呼ばれるかもしれないからなぁ。
0564デフォルトの名無しさん
NGNG根の腐った論理(?)は動かすたびに崩れてく
0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG大方の意見には賛成だが
「助動詞の表なんてすらすら出てくる」のは当たり前なので皮肉になってないよ
0567デフォルトの名無しさん
NGNGそこで汎用的なメモリ操作ルーチン作ってどうするよ。
そうじゃなくて、データ構造に応じてある一箇所でまとめて
取得・解放しろよってこと。
0568デフォルトの名無しさん
NGNGmalloc/freeのラッパを書いてるに過ぎない。
0569デフォルトの名無しさん
NGNGスコープ切っときゃいいのにね
そうすりゃ後から間違って参照されるということはありえない
それができないってことは、構造化ができてないってことなんだろうね
0570デフォルトの名無しさん
NGNGtypedef struct _Hoge { ... } Hoge;
Hoge *pHoge = hoge_alloc(...);
hoge_free(pHoge);
とか、そういうこと?
0571デフォルトの名無しさん
NGNGたぶん、最初にtagなしのtypedefをしようとして、自分自身へのポインターを含むことに
気づいて、やめて、で、消し忘れた、のでは?
0572デフォルトの名無しさん
NGNGじぶんでいってて、その矛盾に気づかないのか?
0573デフォルトの名無しさん
NGNG\0
printf("hello, world\n");
printf("hello, world\n");
0574デフォルトの名無しさん
NGNG#include <stdlib.h>
void * malloc(size_t size);
int global;
main()
{ int a;
printf("mainにおける(malloc)のアドレス: %p\n", &malloc);
printf("mainにおける(global)のアドレス: %p\n", &global);
printf("mainにおける(a)のアドレス: %p\n", &a);
printf("関数(main)のアドレス: %p\n", &main);
}
このプログラムを実行した結果
mainにおける(malloc)のアドレス: 20830
mainにおける(global)のアドレス: 2093c
mainにおける(a)のアドレス: ffbefc34
関数(main)のアドレス: 10614
を見てなにがわかるか考察せよ。
って出たんですがどうやって書けばいいんですか?
0575デフォルトの名無しさん
NGNG答え。 何もわからない
サンプルとして失格。
これで何かがわかったら教授より上だ。
0576デフォルトの名無しさん
NGNGaはスタック上
mainはテキスト領域にある
ということを言わせたいんじゃないの?
0577デフォルトの名無しさん
NGNG俺がわかったこと
・アドレスの位置がわかった
・main関数の後にmalloc, global, aが配置されている
この課題はメモリ上の位置関係を考察しなさいってことですかね?
0578デフォルトの名無しさん
NGNG「4行表示されたことがわかった。」
0579デフォルトの名無しさん
NGNGヽ(`Д´)/それだ!
0580デフォルトの名無しさん
NGNG「出題者の知能の程度が分かった」
0581デフォルトの名無しさん
NGNGヽ(`Д´)/それだ!
0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGもうちょっと突っ込んで考察してみると
アドレスの配置順は、
・malloc引数でsize_tを指定している事、malloc.hではなくstdlib.hをincludeしている事から、
ANSIに準拠した環境である
・main 、malloc、global、aの順である
・printf中に日本語文字列を使用可能な事から、最低限日本語を扱えるコンパイラを使用している
・各アドレスは4byte毎に整列されているので、おそらく32bit環境である
・mainのアドレスとmallocのアドレス、globalのアドレス値から、
mallocはTEXTセクションの比較的後ろの方に配置されている
・断言はきないが、mainとmallocのアドレス差から、staticリンクと
dynamicリンクが予想されるので、仮想記憶を備えた環境で動作させている
・これだけのプログラムにも関わらず128kbyte以上のサイズを消費している事から、
標準でリンクされるコードの多い、比較的大きめのOS上で実行された
・aのアドレスからスタックの配置からOSをある程度絞り込める
・2chで宿題の答えを聞こうとする>>574の程度の低さ
・ここが宿題スレでない事も判らない>>574のあふぉさ加減
まだ有るかもしれんが、このくらい
0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNGANSIがアドレスの配置順をどう規定しているんだ?
日本語文字列とやらのコード系を確認せずに何が断定できたんだ?
整列規則がどうかしたって? 実行環境がPCでそーゆーこと言うと赤っ恥かくぞ。
アドレス差からバインディングタイプを推定することは全く不可能。隣接させることさえ可能だ。
128KByteというキリの良さから連想できたことが冗談みたいに少なすぎ。
失格サンプルを出題した教授だって腐っても学者のはしくれ、
おまえさんに対する学問に対する素養を採点させると・・・
0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG1: malloc == *malloc
2: malloc == &malloc
どっちもTRUEになるの?
0589デフォルトの名無しさん
NGNGvoid *(*malloc)(size_t) = 0;
galtu = malloc(1);
0590デフォルトの名無しさん
NGNGfloat や double の変数のゼロ判定はどうやってらったらよいのですか?
0による除算を避けるために判定を書きたいのですが。
0591デフォルトの名無しさん
NGNG....
if (f == 0.0) ...
0592デフォルトの名無しさん
NGNGあ、それで委員ですか。
浮動少数の == 判定は御法度だと思ってました。
もしかして0.0 の時だけ特別ですか?
0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNG有効桁数内の整数に丸め誤差は無い。
0595デフォルトの名無しさん
NGNGLinuxがどういうコンパイラを使うことを前提としているか垣間見えるじゃないか。
0596デフォルトの名無しさん
NGNG0ぴったりじゃなくても、極端に0に近い数だとやはり0除算扱いになる。
だから自分で有効桁数を決めて、絶対値がそれ以内かどうか調べるべし。
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNGdouble x
あれこれ
if (x == 0)
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNG・厳密に0と評価できる
・除数がイプシロンを下回る
まあ色々考えられる罠
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNGhttp://www.uja.jp/contents/math/divbyzero.html
0604デフォルトの名無しさん
NGNG他に、0÷0というのがある
0605デフォルトの名無しさん
NGNG端折り過ぎ。
0606デフォルトの名無しさん
NGNG実数と float/double は違うから。
実数では0除算しちゃだめだけど、
C言語の float/double の場合、処理系依存?
たいていは0除算の結果は∞。
0/0 は NaN。
0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG/* リストの先頭保存用 */
List start = NULL;
/* リストを初期化 */
start = Initialize();
push(start, 1);
return 0;
}
void push(List *p, int num) {
List *data; List *next;
if(p->next != NULL) {
next = p->next;
data = add_list(p, num);
data->next = next;
p->next = data;
} else {
add_list(p, num);
}
}
List *add_list(List * head, int num) {
List *p;
p = (List *)malloc(sizeof(List));
/* 変数に代入したり、nextを代入したりする */
return p;
}
このような自己参照構造体を利用したスタックを操作するプログラムを作りました。
今のところ正常に動作していますが、関数が呼び出された後メモリが解放される筈なので、
pushは問題があるような気がします。たまたま、運良く動いているだけでしょうか?
0609デフォルトの名無しさん
NGNGfree関数の呼び出しが見あたらないが。
0611デフォルトの名無しさん
NGNGp,num,data,nextは解放されるが、それが問題になるようにはみえない。そのアドレスを返しているわけでもないし。
ネタか?
0612608
NGNG関数内で宣言した変数は関数の処理が終わり次第自動的に解放されますが、
今回のように関数内で新たな構造体を作成して処理するような場合でも
関数での処理が終わったら解放されてしまうか?ということです。
start→NULL
push関数を呼び出して後ろに構造体を連結する
start→構造体1→NULL
↑この構造体1が関数の処理が終了後解放されてしまうのではないか?
こんな感じです。
0613デフォルトの名無しさん
NGNG例えば add_listでは
変数pは開放される。
mallocした領域は開放されない。
add_listが返すmallocの返値はadd_listの外でも有効。
0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNGこれに異論はないだろう。
0616デフォルトの名無しさん
NGNGmallocも関数だと分かっていれば解放されるかどうか分かるはずだ。
0617デフォルトの名無しさん
NGNG妥当にして簡潔な説明だ
これでなるほどと思うかどうかで >>612 のセンスが問われる
0618デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNGenum test {hoge, moge, huge};という列挙体をenum test tmp;としたときの列挙型変数tmpは
普通のint型の変数とは何が違うのでしょうか?
試しにtmp = 4としても問題なく表示出来てしまい
enum test tmp;の代わりにint tmp;を置き換えてみても何一つ問題なく動きました。
これは処理系依存だと言うことなのでしょうか?
0622デフォルトの名無しさん
NGNGhttp://www.kouno.jp/home/c_faq/c2.html#0
などが参考になる。
0623デフォルトの名無しさん
NGNG早速読んでみたいと思います。
ありがとうございました。
0624612
NGNG616さんのレスで涙がでました。Cの教本片手に首吊ってきます……。ありがとう。
0625デフォルトの名無しさん
NGNGプログラム中で
#define SINSUU 2
という部分があるんですが、
なぜかそこで訳のわからない警告が出たんです。
WARNING C4005: 'SINSUU':マクロが再定義されました。
SINSUUの前の定義を再確認してください
というメッセージで、#define SINSUU 2 はどこを見ても一つしかありません。
そこで、
#ifndef SINSUU
#define SINSUU 4
#endif
こうしたら何とか警告は出なくなったんですが、
この対処でよかったんでしょうか?
ファイル分割をしているわけではなかったんですが、
何がいけなかったのか全くわかりません。
使用環境は Visual C++ 6.0 です。
この問題で考えられる原因に、心当たりがある方いらっしゃいませんか?
0626デフォルトの名無しさん
NGNG.h ファイルはインクルードガードしとけ。
0627デフォルトの名無しさん
NGNGおぉ、ありがとうございます。
まさにそのとおり、変更後2回目のコンパイルでこの警告が出ます。
あまり大した問題で無いとわかり、安心しました。
して、その設定はどこですればいいのでしか?
0628デフォルトの名無しさん
NGNGコンパイラに添付されてるヘッダを何本か開いてみろ、共通点があるはずだ
1度でもインクルードされたかどうかのフラグを立てているわけだが
0629デフォルトの名無しさん
NGNGどうもです。
0630デフォルトの名無しさん
NGNGstdio.h をみてみると、
#ifndef __STDIO_H
#define __STDIO_H
:
:
#endif
ってなってる。
0631デフォルトの名無しさん
NGNGこの推察はおそらく合ってるが、
そこで
> .h ファイルはインクルードガードしとけ。
こうするのはおおぼけ。
0632やれやれ
NGNG0633デフォルトの名無しさん
NGNG逆だよ ぼけ。
標準ヘッダーみたいなものはともかく、自分でつくったファイルでやるやつはぼけ
やらないとエラーがでるようになっちゃうようなやつはおおぼけ
0634デフォルトの名無しさん
NGNGよくある質問だからFAQなんだろ
0635デフォルトの名無しさん
NGNGかなり問題だよ ぼけ
自分で、どれがどうインクルードしているのか把握してないわけだろ?
0636デフォルトの名無しさん
NGNGコンパイラーが、警告をだし「てもよい」
0637デフォルトの名無しさん
NGNGプ
標準ヘッダなみにしっかりしたの作れよ
0638デフォルトの名無しさん
NGNGは、やっても問題ありませんか?
0639デフォルトの名無しさん
NGNGただ、再度標準入出力へのポインタを取得するのは処理系依存です。
0640デフォルトの名無しさん
NGNG>処理系依存です。
俺用語で言われてもわからん
規格用語に翻訳してくれ
0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNG意味が逆だろ?
標準ヘッダーとちがって、自分で「把握しておくべき」なので、
2重インクルード防止の仕掛けはしては「いけない」のだ > 自作ヘッダー
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNG自分が何を使っているかは把握すべきだね
その「何」にも責任範囲があって
そこに立ち入るのは「キャー」なんだよ
0645デフォルトの名無しさん
NGNG#define iskanji(c)(0x81 <= (c) && (c) <= 0x9f || 0xe0 <= (c) && (c) <= 0xfc)
より伝統的な以下のに書き換えたのですが、
#define iskanji(c) ((unsigned int)((c) ^ 0x20) - 0xa1 < 0x3c)
数倍以上速くなりました。
そこで、以下の「シフトJISの2バイトめとしてありうる値かどうか」を判断するマクロを
#define foo(c)(0x40 <= (c) && (c) <= 0x7e || 0x80 <= (c) && (c) <= 0xfc)
同様にもっと速いコードに書き換えられないでしょうか?
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNGふつうcharって読むだろ。キャーとはいわん
0648デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNGつきあってやんねー
ばいばい
0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNG0656デフォルトの名無しさん
NGNGDC X'83
0657デフォルトの名無しさん
NGNGいちいちそんなん気にしてられるか。
0658デフォルトの名無しさん
NGNGハードで実装すればいいのでは?
0659デフォルトの名無しさん
NGNGttp://nssearch.hp.infoseek.co.jp/clang/1084749585.html
とりあえずここの>>1に書いてあるNGワード、登録しとけ。
0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNGで宣言して
a++;
ってしたらアドレスが3つすすんだんだけど常識?
0662デフォルトの名無しさん
NGNGようするに把握したくないってことですね?
そんなコードがろくなもんであるわけがない。
0663デフォルトの名無しさん
NGNGchar a[4][5]; だといくつすすむかわかるよね?
0664最強 ◆lJJjsLsZzw
NGNG1つ。間違いない。
0665デフォルトの名無しさん
NGNG比較が3つだけになりちょっと速くんるのですが、20%ぐらいしか速くなりませんでした。
数倍速くしたいのです。(で、表をひかずに実現したい)
0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNG5
a[1][0] - a[0][0]
0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG#define foo(c) ((unsigned int)((c) - 0x40) <= 0x3e || (unsigned int)((c) - 0x80) <= 0x7d)
だとしても、比較2回に、論理演算1回あるので、速くはならんだろう。
0671デフォルトの名無しさん
NGNGハードウェアを取り替えてください。
0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNG>#define iskanji(c) ((unsigned int)((c) ^ 0x20) - 0xa1 < 0x3c)
ってマクロのキモは
「0x81〜0x9f と 0xe0〜0xfc の2つの領域を ^0x20 で一つにまとめる」って
ところにあるんで、同じようには出来ないんじゃないか?
#define foo(c)((unsigned)(c) - 0x40 <= 0xbc && (c) != 0x7f)
つか、速くなるかどうかはアーキテクチャにブリブリ依存してる希ガス。
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNGハァ?無知は黙ってたら?
0676デフォルトの名無しさん
NGNG把握しても嬉しいこと無いし。
0677デフォルトの名無しさん
NGNG情報隠蔽って考え方に乗り遅れた老朽部品だな
つーか30年前でさえこんな概念はガイシュツに過ぎなかったわけだがw
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG今日覚えたよ!!
0680デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1085915001/
0681デフォルトの名無しさん
NGNG何をするんですか?
shared object を作るコンパイラ/リンカにヒントを与えるとか
聞きますが具体的な意味がわかりません。
0682デフォルトの名無しさん
NGNG0683デフォルトの名無しさん
NGNG引数を左右どちらから渡すとか、
引数を受け渡しに使った変数領域を
呼び出し側、関数側のどちらがクリア
するのかetcのとりきめ。
Win32APIは__stdcall(標準呼出 standard call の略)、
c言語のデフォルトは__cdecl(c default call の略)、
になっている。他にもスタックを解さずにレジスタ経由で
呼び出す__fastcall(文字通り早い、そのかわり処理系
依存になる)とかがある。MSDNをもっていたら詳しく
書いてあるけど、ググッても結構ヒットするはず。
0684630
NGNG性格の悪いヤツだなー。しかも視野が狭いと見える。
チームで大きいアプリ作る場合、多重インクルードガードしとくのが安心だろう。
もし釣りだとしても低質すぎ。
0685デフォルトの名無しさん
NGNG釣られるなよ。
「安心」じゃない、「絶対」だろ。
a.hに依存する b.h と c.h って、有りうるだろ?
0686デフォルトの名無しさん
NGNG「いりそうなインクルードファイル全部書いとけっ」
ってことになってしまって、不要なのまで入ってしまいそうなんだけど・・。
「不要な物の1つや2つ、インクルードファイルの依存で躓くよりいい」
ってことでしか?
0687デフォルトの名無しさん
NGNGヘッダの中で他のヘッダをincludeしてたりする場合もあるんで、
人間がinclude順をあれこれ気にするよりは、
機械的に二重 include防止しといた方がいいという話。
普通に書いてれば、必要ないヘッダファイル includeしてても影響は無いし。
(気持ち悪いんで、大抵は必要最小限のものにしぼるけど)
0688デフォルトの名無しさん
NGNG多少の不便を乗り越えて本来の意味に沿うように使いこなすのは
機械相手の仕事を選んだ不幸な(本人は幸福?)人々の宿命と割り切れや
0690デフォルトの名無しさん
NGNG入力は二つです。10進数で入力しますy。それを2進に変換して浮動小数点数にして、演算をします。。
出力結果も10進で表示します。
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNG入力文字列をatofで doubleあたりに変換したものを使って演算すれば上記の
条件は満たせるような気がするが。
0693デフォルトの名無しさん
NGNGしかもSJIS<->UTF-8ってのは巨大な表をひかなきゃいけないのですが、
そんなのも平気ではいってるぐらいです > いまどきのくみこみけい
0694デフォルトの名無しさん
NGNG> チームで大きいアプリ作る場合、多重インクルードガードしとくのが安心だろう。
いいや、逆にそんなことをするチームってのはろくなもんじゃない。
0695デフォルトの名無しさん
NGNG> 人間がinclude順をあれこれ気にするよりは、
> 機械的に二重 include防止しといた方がいいという話。
だから、それがすでにだめだめ
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNGまた「&」をアンドと読んだら?
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG&はアンパーサ
^はサーカムフレックス
これであってる?
0701デフォルトの名無しさん
NGNGアンドと読んでも問題ない。
むしろアンパサンドと読むと
'A' をエーパーセーと読むみたいな感じ。
0702デフォルトの名無しさん
NGNG縦棒じゃない。
0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG腹減った。
0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNG何がどうダメダメなのか書けよ。
どうせダメだからダメとか子供みたいなこと言うんだろうなぁ。
>>694-695 ↓
〃〃∩ _, ,_
⊂⌒( `Д´) < ヤダヤダ!インクルードガードしちゃヤダ!
`ヽ_つ ⊂ノ
ジタバタ
0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNGなにこどもみたいなこといってるんだ...なんでいけないのかさえわからないようなやつは
だめだめにきまってるだろ ぼけ
0709デフォルトの名無しさん
NGNGだね。
多重インクルードのカード処理が必要ってことは、すでに依存関係を把握できてない
ってことだし。
0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNGそれは標準インクルードに関してだろ?
自分で作成したインクルード依存関係くらい
ちゃんと把握して作成しなきゃダメダメだろ!?
っていってるんじゃねぇのんか?
0713デフォルトの名無しさん
NGNG0714デフォルトの名無しさん
NGNG明日の自分は他人
0715デフォルトの名無しさん
NGNG/* defs.h */
/* すべてのマクロを定義 */
...
/* funcs.h */
/* すべての関数のプロトタイプ宣言 */
...
とかやってそうでキモイ
0716デフォルトの名無しさん
NGNGチームで開発するときも、それ言うんですか?
「俺の hoge.h は内部で a.h とプロジェクト共通の def.h を使ってる。
ガードしてないから自分で気を付けろ!」って?
hoge.h 使おうと思ってた人は、自分の書いたソースから
a.h と def.h を外さないといけなくなるわけですね?
で、ある時 hoge.h に更に別のヘッダを加えた場合、
「b.h も使う事にした。お前ら b.h は外せ」って言うんですね?
まー好きにしてもらっていいですけどね。
0717デフォルトの名無しさん
NGNG気のせいです。
ガードしていようといまいと、莫迦はそういう使い方をします。
0718デフォルトの名無しさん
NGNGプロジェクト参加したてのときそういう目にあったことがある。
先輩に「インクルードガードしてください」って言ったら
「何それ」
って言われた。
オレ: 「#ifndef... /* 中略 */ ってやつです」
先輩: 「何の意味があるの?」
数日後に一部のヘッダファイルがインクルードガードされてた。
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNG得意な料理はスパゲティですか?(プ
0722デフォルトの名無しさん
NGNGこういうヤツに限って
goto絶対使うなとか不要とか
自慢げに言ってそうだよな(w
0723デフォルトの名無しさん
NGNGヒキコモリ自称プログラマは気楽でいいですね。
100人以上とかで開発したことなんてないでしょうから。
0724100人以上とかで開発したことなんてないでしょうから。
NGNG0725デフォルトの名無しさん
NGNG自分達が無計画なのを棚にあげるのですね?
解るよ、設計ミスしてるとつらいよねw
0726デフォルトの名無しさん
NGNG0727デフォルトの名無しさん
NGNG妄想が禿しいようですね。
ヘッダはモジュール (クラスと言い換えてもいいですが) 毎に
分けるのがふつうじゃないですか?
というか、今そんな話はしてないんですが。
>>722
妄想が禿しいようですね。
gotoを使ってはいけない、というのは莫迦の台詞ですよ。
というか、今そんな話はしてないんですが。
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNGみんな暇なんだよ。
0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNG0734デフォルトの名無しさん
NGNG0735緊急アンケート
NGNG・アンチインクルードガード 1人
・2ちゃんねら 1人
0736インクルードガードを拒絶することの利点を述べよ
NGNG0737デフォルトの名無しさん
NGNG>>735
0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNG自分で依存関係管理してガードせずに書こうが、
ガードしてお気軽しようが、どっちでもいいじゃねぇか。
議論(とても議論とはいえないが)することもねぇ、
好きにしろってことだ。
0740デフォルトの名無しさん
NGNG関数を
-------------------------
fanc(x,y)
int x;
char y;
{
int i,j;
・・・・・・
-------------------------
って書く時、
fanc()を事前に宣言しておきたいんですが
どうやって書けばよいですか?
あと、うちではCygwin使うと
この書き方しか受付けないんですが
Unix上だとこうしか書けないんでしょうか?
返り値の設定のしかたもいまいち分からないので
書きづらくて困ってます。
よろしくお願いします。
0741デフォルトの名無しさん
NGNGint func(int x, char y);
つかまともな本買え
0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNG0747740
NGNGどこらへんがネタっぽいんでしょうか・・・?
0748デフォルトの名無しさん
NGNGこの書き方しか受付けないんですが
0749デフォルトの名無しさん
NGNGそんな餌で(
0750デフォルトの名無しさん
NGNGANSI Cなコンパイラ使えよ。
コンパイラによってはANSI Cオプションがいる。
0751デフォルトの名無しさん
NGNG#include<stdlib.h>
void main(void){
char *str;
str=malloc(sizeof(char)*20);
scanf("%s",str);
printf("%s",str);
free(str);
}
参考書のサンプルプログラムをDLしてコンパイルしたら型がなんとかって
エラーがでます。
本事態がまちがってるのに、どこをどうなおしたいいかわかりません
もしかして、この本つくったやつしょぼいの?
ぜひどこをなおしたらいいかおしえてください
0752デフォルトの名無しさん
NGNG0753デフォルトの名無しさん
NGNGここはC言語スレでお前が買ったのはCの参考書なのに
拡張子.cppとかにしてたりするんじゃないかとか。
mainの戻り値の型なんて餌に俺さまがクマー
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNGという本を購入したので、C言語を勉強しようと思っているのですが
コンパイラは何がオススメですか?
755はプログラムに関してはずぶの素人で、使用するマシンのOSはXPです。
アドバイスいただければ幸い。
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGダディクールの元ネタ探してたとき、クマーのことも
いっしょに書かれてたページがあったんで貼っとく。
http://www.google.co.jp/search?q=cache:gwonY-qou7QJ:www5a.biglobe.ne.jp/~shinotan/sonRO.htm+%E3%83%80%E3%83%87%E3%82%A3%E3%83%BC%E3%82%AF%E3%83%BC%E3%83%AB&hl=ja
0758デフォルトの名無しさん
NGNGでもできれば、「そんな餌で俺様がクマー」だっけ?
それのルーツも知りたいが・・・板&スレ違いだった。スマソ・・・
0759デフォルトの名無しさん
NGNG0760デフォルトの名無しさん
NGNGint main(){
int i;
for(i=0;i<5;i++) printf("unko\n");
printf("\0x1b [2J");
return 0;
}
エスケープコードってXPじゃ使えなくなってるの?
98だとちゃんと↑の実行すると画面が消えてくれるんだけど・・・.
0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNGよくあるのがCONFIG.NTに
device=%SystemRoot%\system32\ANSI.SYS
dosonly
ってのを追加させて再起動したけど効果現れず・・・.
同じ症状で解決する人と解決しない人がいるみたいだけど
なんか他に解決方法あるぽ?
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNGコンソールAPIを呼び出すとNT, 9xの両方で動くけど、だるいかもしれない。
http://www.kumei.jp/c_lang/intro/no_58.htm
http://msdn.microsoft.com/library/en-us/dllproc/base/console_functions.asp
0765デフォルトの名無しさん
NGNGあーいやーそうもゴリゴリくるとちょいと困ってしまいます.
cout出すのWinじゃないのよね.
Winはシステムから送られてくるデータを表示するだけなのねん
何が言いたいかってーとあるマイコンがあります.
その中のプログラム中にcoutを書くとtelnetで繋がれたコマンドプロンプト上に
文字列が排出されると・・・.そこでエスケー(ry使うとかっこいいんじゃね?と
思ってやってるわけだが.うーむこまった.ちなみにマイコンはRISCでこれが
非常に(オイラが)混乱している原因
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNG0768760
NGNGこれ以上はシステム公開せにゃならんっぽいし
スレ汚しスマソ
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNG二重インクルードガードも必要だが
不要インクルードガードも本当は欲しいところ
俺は>>695とは二重インクルードガードについて主張が対立しているが
>人間がinclude順をあれこれ気にするよりは、
>機械的に二重 include防止しといた方がいいという話。
こういう情報隠蔽とアフォ隠匿の混同については>>695と同意見だ
0771デフォルトの名無しさん
NGNG0772デフォルトの名無しさん
NGNGうそつけ。
98でそれやってないだろ?
0773デフォルトの名無しさん
NGNGESC[2Jでもなんでも対応してるだろ?
だから出力先をTeraTermにすればいいんじゃないの?
0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNG手を加える必要の無い関数についてはfunction forwarding(?)
で元の関数に転送してやる事が出来るそうですが、このやり方が
わかりません。
誰かご存知の方はいませんか?
0776デフォルトの名無しさん
NGNGスレ違いです。邪魔。
0777デフォルトの名無しさん
NGNG>>776
お前の方が邪魔。このスレから消えてください
0778デフォルトの名無しさん
NGNG0779775
NGNGVisualC++系のスレならいいんでしょうかねえ・・
0780デフォルトの名無しさん
NGNGだめ
0781775
NGNG0782デフォルトの名無しさん
NGNGBorland C++ Compiler をDLし、インストしました。が、bcc32を認識
してくれないのです。
ttp://www.setsunan.ac.jp/~center/kyositu/freec/borland.html
一応自分でもできるとは思ったんですが、念には念を押してここのサイト様
のとおりにやってみたところ、認識してくれませんでした。
OSはXPです。環境変数もパスも間違ってはいない(と思ってる)のですが・・。
他に必要な情報あったらご指摘お願いします。早くC言語勉強したいよぅ
0783デフォルトの名無しさん
NGNG当然です。最初から「収拾つかない事態」になるようなまねをするやつは
チームで開発する資格ない。
まあ、おまえみたいなやつは、うちのチームいれないからいいが。
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNGそれがすでにだめ。
0786デフォルトの名無しさん
NGNG"\0x1b [2J"
↓
'\0', 'x', '1', 'b', ' ', '[', '2', 'J', '\0'
ちょと面白いね。
printfでは何も出力しないわけだね。
0787デフォルトの名無しさん
NGNG主にどのような違いがあり、どのような場面で使い分ければいいのでしょうか?
0788デフォルトの名無しさん
NGNG'bcc32'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはパッチ ファイルとして認識されていません。
って出るんです。ということは、Pathが問題なのかな?と思い、一応確認
してみたところ、ちゃんと書いてある通りにしてありますし・・・。
0789デフォルトの名無しさん
NGNG「インスト」って、一般的には
「インストラクション」の略だよね。
インストカード、とか。
で、bccをインストしたの?
どうやって?
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNG> 「インスト」って、一般的には
> 「インストラクション」の略だよね。
はつみみです。
0792デフォルトの名無しさん
NGNG○インスコ
0793デフォルトの名無しさん
NGNG間接要員や管理要員もいれれば200人近くです。
うちのユニットはインクルードガードさせてません。(むしろ「しないように」ルール化)
ヘッダーファイルはべたに(1次に)*.cからだけインクルードされます。
依存関係があるものは、依存するものを先にインクルードすればよいだけです。
依存関係を書き出し(aはbとcに依存、bはdとeに依存...のように)、
それを『とぽろじかるそーと』するだけでinclude順は簡単に決まります。
以前、ひどいユニットのインクルード順をきめてあげようと、そこの
ソースのinclude依存関係をtsortコマンドに食わせたら「循環参照があります」エラー ...
すごい。
0794デフォルトの名無しさん
NGNGすげー職場だな。
0795デフォルトの名無しさん
NGNG使い分ける必要はない。
お前は標準ライブラリの方(高水準出力関数)だけを使え。
それとfopenのどこが出力関数だよ?
0796デフォルトの名無しさん
NGNGバグ発生率は一番低く、同一拠点では、全員がちゃんと20:00前に帰れる唯一のunitです。
0797デフォルトの名無しさん
NGNG思いっきりパス通ってないよ。
とりあえず
c:\YourPath\bcc32.exe
とかフルパス指定で起動するかやってみたら。
それで成功したらシステムエディットボックスの内容メモ帳にコピペして間違いを探す。
0798デフォルトの名無しさん
NGNG> printf("%s",str);
> free(str);
> }
> 参考書のサンプルプログラムを
scanf....つかうなよぼけ。っていうかー
その前にまずその「参考書」の名前を言え!
本の名前を言えば、
おしえてやるよ!
0799782
NGNGさせていただきました。インストールの事でございます。
ちなみに、うちのPCは兄貴と兼用で、兄貴はPerl?を勉強してる
のですが、それもコマンドプロンプト使いますよね?それとは
関係ないのかなーとか・・・。
0800デフォルトの名無しさん
NGNGfopenは高水準でも低水準でもない。
ISOで規定された唯一のファイル処理系だ。
あなたの言う「低水準関数」とやらは、おそらく(故意に白々しい言い方)
その特定の実行環境で定義されているローカルなものだろう。
ISO規格で抽象化されている機能だけで足りることはfopen、
そうでない処理系独自の機能が必要なら「低水準関数」と
使い分ければよい。
0801デフォルトの名無しさん
NGNGDOSKEY BCC32="DEL *.*"
このコマンドを実行すれば使えるようになるよ。
0802デフォルトの名無しさん
NGNGヘッダのインクルードごときでバグが出たり出なかったりというすごい
状態なら、一から設計しなおしたほうがいいと思う。
0803デフォルトの名無しさん
NGNGおまえが氏ね
0804デフォルトの名無しさん
NGNG{
int i;
for (i = 0; i < 5; i++)
printf("unko\n");
printf("\x1b[2J");
return 0;
}
こう書き直して、nnansi.sysでちゃんとうまくいったよ。
ようはちゃんと空白あけないからいけない!
0805デフォルトの名無しさん
NGNGextern fanc();
0806デフォルトの名無しさん
NGNGなんてぼけなこと言うやつがバグいれるんだな。実際。
0807デフォルトの名無しさん
NGNGやーい > scanf大好きぼけ
0808デフォルトの名無しさん
NGNGインスコール(Inscall)ですよ。
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNGおまえ頭おかしそうだな
関数に好きも嫌いもねえよ
仕様に着目して使えるときは使ってる
それだけだ
0811デフォルトの名無しさん
NGNGとかいいつつscanfのことをいわれるといてもたってもいられない症候群では? ;)
「お、おれのscanfをばかにするな!」
依存症だね。
0812デフォルトの名無しさん
NGNG「それじゃあおれの使える関数2つのうち50%を否定されてしまい、おれの存在価値がなくなる!」
という心配であばれてるんでしょ? ;) > scanfを悪くいわれるとこまるやつ ;-)
0813デフォルトの名無しさん
NGNG状況を把握できずに、つねに原則論で動く傾向があるということは分かった。
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNGいくら図星をいわれて反論ができないからといって、
「これを言えば反撃になる」と思い込んでいる万能のセリフをこぴぺしても意味ないよ!
0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNGvfscanfもだめ?
0818デフォルトの名無しさん
NGNG別パーサ用意する必要ないし。
それで十分な状況ならいいんじゃないの?
0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNGっていうか、scanfのパーサー不便じゃろが!
sscanfのほうがちょっとはましだが、それでもやっぱりだめ。
0821デフォルトの名無しさん
NGNGは? 誰か困ったのか??
おまえ本当にちょっと精神科で診てもらえ
0822デフォルトの名無しさん
NGNGだから「それで十分な状況」って書いてるじゃん。
常にscanf系使えと言ってるわけじゃないよ。
0823デフォルトの名無しさん
NGNGsscanf使うなっていうやつはアフォ
0824デフォルトの名無しさん
NGNGアフォ自身の判断基準を教えてくれてありがとう
何の役にも立たんがw
0825デフォルトの名無しさん
NGNGなんで?
0826782
NGNGなんだかよう分からんのですけど・・・orz
とりあえず様子見してみます。ありがとうございまして。
0827787
NGNG>>800
ありがとうございました。低水準入出力関数の間違いでした(汗。
入門書の場合、低水準入出力関数しか書いていない時があるのですけど、
やはり高水準入出力関数を使った方がいいのですね!
0828デフォルトの名無しさん
NGNGんなこたぁない
0829デフォルトの名無しさん
NGNG>入門書の場合、低水準入出力関数しか書いていない時があるのですけど、
本当か? 釣りか?
0830デフォルトの名無しさん
NGNGUNIXとかへんな名前がついていました。
VCの事もかいてないし、古くて役にたたないんでしょうか?
0831デフォルトの名無しさん
NGNGばいばい
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNG今のあなたよりも価値はある本ですよ。
0834787
NGNG明らかにコードが初心者向けじゃありませんよね?簡潔に書いてあり、
良書だとは思うのですけど、みなさんはどう思っているのでしょうか?
0835デフォルトの名無しさん
NGNG役に立たないですね。
0836デフォルトの名無しさん
NGNGつまんね
本ではなくお前が
0837デフォルトの名無しさん
NGNG超ネタくさいなあ。
カプセル化の反対を地でいってるのね。
途中のヘッダファイルの変更で新たに依存が発生した場合
大量のモジュールをいじらなきゃならなくなるね。
工数計算は必要以上にでかくなり、また
そのコストを避けようとする力が働き、コードが硬直化しやすそうだ。
0838デフォルトの名無しさん
NGNG>超ネタくさいなあ。
超禿同
0839838
NGNGつーか(・∀・)ジサクジエーン
0840デフォルトの名無しさん
NGNGそれがそもそもだめ
0841デフォルトの名無しさん
NGNG明日は大事な勝負の日
0842デフォルトの名無しさん
NGNG一度作ったものは改良もできないのか
0843デフォルトの名無しさん
NGNG改良する気があるなら、いじるファイルが何百なってでもやるべし。
そもそもそんなにあとでいじらなきゃいけなくなるってことは
設計ミスなわけだから。
逆に、あとでそれだけ変更がでるようなことを最初によく考えずに実装するのがぼけ
それをごまかすために、ヘッダーのなかでインクルードするんだったら ぼけ
0844デフォルトの名無しさん
NGNG0845デフォルトの名無しさん
NGNG現プロジェクトで一番成績のいい私がインクルードガードを提唱しているのだが。
この10年間で、やっと他のチームが私に追いついてきたと言うのに。
#なんて書くと、屑が屑以下と仕事しているとか言われるんだろうな。
0846デフォルトの名無しさん
NGNG設計が良ければインクルードガードを使う必要性も出てこない。
と言いたいんだろうな。
0847デフォルトの名無しさん
NGNGインクルードガード必要ないYO!
0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG#ifndef _XXX_H_
#define _xXX_H_
#endif
0851デフォルトの名無しさん
NGNG0852初心者
NGNG組んだのですがアルファベッドを入力すると無限ループに
なってしまいます。
%sにすると文字列認識してしまいます、どうしたらいいか
教えてください。
0853デフォルトの名無しさん
NGNG氏ね
0854デフォルトの名無しさん
NGNG>scanf文
ワラタ
0855デフォルトの名無しさん
NGNGああ、そのプロジェクト自体がだめだめなんだろうなあ。
0856デフォルトの名無しさん
NGNG使うなよ ぼけ
0857デフォルトの名無しさん
NGNG#include <stdio.h>
int main(){
int n = 0;
for(;;){
printf("Input > ");
if(!scanf("%d", &n)){
fflush(stdin);
n = 0;
}
printf("Result > %d\n", n);
}
return 0;
}
・処理系依存
・scanfはできれば使わない方が良い
0858デフォルトの名無しさん
NGNGs c a n f 避 け る 奴 は 軽 A T 車 乗 っ て る ド 素 人
0859デフォルトの名無しさん
NGNGうーん・・
0861デフォルトの名無しさん
NGNG逆だろ...
0862デフォルトの名無しさん
NGNG全く新しいタイプの笑い。
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNGいやいや、お前がダメダメなんだよ。
0865デフォルトの名無しさん
NGNG-------------------- キリトリセン --------------------
0866デフォルトの名無しさん
NGNG0867デフォルトの名無しさん
NGNGのりしろ
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNGscanf文の前に、次のprintf文を入れましょう。
printf("アルファベッドを入力すると無限ループになってしまいます。\n");
ところで、何だかリラックスできそうでいいですね>アルファベッド
0872デフォルトの名無しさん
NGNGみんな朝鮮強盗団にくびったけ?
0873デフォルトの名無しさん
NGNGという条件判定は
if(hoge) {}
と書いても動作しますけど、これはNULLが0ではない処理系もあるかもしれないと考えて避けるべきなのでしょうか?
0874デフォルトの名無しさん
NGNGまたまた発見!
>これはNULLが0ではない処理系もあるかもしれないと
ありません。ヌルポは0です。FAQ嫁!
0875デフォルトの名無しさん
NGNGhttp://vision.eng.shu.ac.uk/C++/c/c-faq/cfaq5.html
ここの5.17あたり参考になるか?
0876デフォルトの名無しさん
NGNGありがとうございます。
NULLはプログラマ側から見て常に0となり、非0が内部的にヌルポインタとなる環境でもコンパイラのみがそれを気にする必要がある、ということでしょうか。
0877デフォルトの名無しさん
NGNGディレクトリ掘ったら(゜д゜)ウマー!
0878デフォルトの名無しさん
NGNGフォルダが変わる度に、dllを作成し直さないと、
いけなのでしょうか?batファイルで何とかなるような
ことを聞いたのですが、何をどうしていいのかわかりません。
教えて下さい。お願いします。
0879デフォルトの名無しさん
NGNGYes.
0880デフォルトの名無しさん
NGNGスレ違い。
どんな問題でてるんだ?VBのIDEとEXE実行は動作が違うが、確認した?
0881デフォルトの名無しさん
NGNGご返答ありがとうございます。
現在、VBでVCのReleaseから作成した、.dllを読み込み実行して、
テキストファイルを出力しているのですが、設定でvbのexeを指定しているので、
その度に出力先を変更しています。
できたら、フォルダを変えても現在のフォルダ上に出したいのです。
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNGってことはなんとなくわかるが、「設定でvbのexeを指定している」が分からん。設定ってなんだ?
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG>設定でvbのexeを指定しているので
どこの設定だ
VBの中の設定か、VCの中の設定か、自分で作ったソフトの中の設定か、あるいはそれ以外
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNGVCのReleaseモードでビルドしたDLLを、
VBプログラムでロードして実行して、実行結果をテキストファイルに出力することで確認している
VBでビルド結果のexeの出力先を毎回違うフォルダに指定しているので
そのexeからカレントフォルダにファイルを作ると、exeに連動して毎回違うフォルダにファイルが作られてしまう
そうではなく、毎回同じフォルダにファイルが作られるようにしたい
これであってるか? >>881
0888デフォルトの名無しさん
NGNGVCのプロジェクト-設定-デバッグ-デバックセッションの実行可能ファイル
で、VB.exeの場所を指定してます。
0889デフォルトの名無しさん
NGNG答えてくれる人はいないですか?
0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNGありがとうございます。
VB側がデスクトップだったり、他のPCだったりして、
パスが変化するもので、その度に>>888のexe変更
しなくてはいけないのですか?
まだまだ勉強不足ですが、お願いします。
0892デフォルトの名無しさん
NGNGまだやってたのか
DLLをシステムディレクトリやVB側のEXEと同じディレクトリに置けばいいだけだろ
インストーラ作るとかさ
0893デフォルトの名無しさん
NGNGもう少し、勉強してから出直してきます。
また、何かありましたらお願いします^^
0894デフォルトの名無しさん
NGNGtypedef struct _QUEUE_DATA
{
QUEUE_DATA *nextQueue; /*★*/
char data[128];
} QUEUE_DATA;
★の行でシンボル未定義によるコンパイルエラー
エラーの理由はわかるのですが、
上記のような構造体宣言のエラーを回避する良い方法を
教えてください。
typedef宣言にせず以下の方法以外でお願いします。
struct QUEUE_DATA
{
QUEUE_DATA *nextQueue;
char data[128];
};
0895デフォルトの名無しさん
NGNGstruct QUEUE_DATA *nextQueue;
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNGファイル作るときフルパスにすりゃええんちゃうの?
0898デフォルトの名無しさん
NGNG君と君の脳内仲間だけです。はい次の質問どうぞ。
0899デフォルトの名無しさん
NGNGごめんなさい。
したのサンプルコードが間違えているってことですよね。
(正)
struct QUEUE_DATA
{
struct QUEUE_DATA *nextQueue;
char data[128];
};
これしか方法ありませんか?
0900デフォルトの名無しさん
NGNGint factorial(int n){
int i,f=1;
for(i=1;i<=n;i++){
f=f*i;
}
return f;
}
int combination(int a,int b){
return (factorial(a)/factorial(a-b)/factorial(b));
}
int main()
{
int i,n,m;
printf("Input n:");
scanf("%d",&n);
printf("Input m:");
scanf("%d",&m);
printf("%dC%d = %d",n,m,combination(n,m));
return 0;
}
0901デフォルトの名無しさん
NGNGint factorial(int n){
int i,f=1;
for(i=1;i<=n;i++){
f=f*i;
}
return f;
}
int combination(int a,int b){
return (factorial(a)/factorial(a-b)/factorial(b));
}
int main()
{
int i,n,m;
printf("Input n:");
scanf("%d",&n);
printf("Input m:");
scanf("%d",&m);
printf("%dC%d = %d",n,m,combination(n,m));
return 0;
}
問題点がどこか分かりますか?
エラーばっかりでて困ってます。
ちなみにnCm(コンビネーション)を求めるプログラムです。
0902デフォルトの名無しさん
NGNGint factorial(int n){
int i,f=1;
for(i=1;i<=n;i++)
f *= i;
return f;
}
int combination(int a,int b){
return (factorial(a)/factorial(a-b)/factorial(b));
}
int main(void) {
int n = 10, m = 5;
printf("%dC%d = %d",n,m,combination(n,m));
return 0;
}
$ gcc comb.c
$ a
10C5 = 252
(´∀`)およ?
0903デフォルトの名無しさん
NGNGstruct付けてればコンパイルできるんだから、それでいいだろうが
0904デフォルトの名無しさん
NGNGこれをInputで入力するようにするには?
0905902
NGNGテスト用
int combination(int a,int b){
printf("%d %d %d ", factorial(a), factorial(a-b), factorial(b));
return (factorial(a)/factorial(a-b)/factorial(b));
}
$ a
Input n:20
Input m:3
-2102132736 -288522240 6 20C3 = 1
0906デフォルトの名無しさん
NGNGまーたしかにそうなんですけど、
struct付きでしか解決方法がないのか、
或いは他の方法があるのかが知りたいのです。
0907デフォルトの名無しさん
NGNG20C3って間違ってますよ
0908902
NGNGそりゃそうだ、つーか意図が伝わってない…。
20C3を求めようとすると、まずfactorial(a)が2432902008176640000になり、これは普通のintでは手におえない数値だからオーバーフローして
変な値(>>905で貼った-2102132736)になる。factorial(a-b)(→17)も激しくケタ溢れする。
それを防止するには巨大整数ライブラリを作って無限桁計算をするか、そもそもそう簡単に桁あふれが起こらないようにアルゴリズムを修正する必要がある。
例えば、こう。
#include<stdio.h>
long long misc1(int start, int count) {
long long result = 1;
while (count)
result *= (start - --count);
return result;
}
int combination(int n,int m) {
return (misc1(n, m) / misc1(m, m));
}
int main(void) {
// int n = 10, m = 5;
int n, m;
printf("Input: n,m ");
scanf("%d,%d", &n, &m);
printf("%dC%d = %d",n,m,combination(n,m));
return 0;
}
# これでも1000000C100なんて求めようとするとお手上げ。
0909デフォルトの名無しさん
NGNGtypedef struct _QUEUE_DATA
{
struct _QUEUE_DATA *nextQueue; /*★*/
/* ~ */
char data[128];
} QUEUE_DATA;
0910902
NGNGprintf()でもlong longとして表示したほうが良いか。%lldだっけ(コンパイラに拠る)
0911デフォルトの名無しさん
NGNGなるほど!早速あした仕事で使わせて頂きます。
ありがとうございました。
構造体定義しているヘッダファイル内が、
全てtypedefで定義していたので、合わせたかったのです。。
0912デフォルトの名無しさん
NGNGまだ習ってない内容が多い…
もうちょっと簡単なのは出来ませんか?
ずうずうしくて本当に申し訳ないです。
(Inputするのは一桁の数字なんで、大きい数字は考えなくてOKです)
0914デフォルトの名無しさん
NGNG0915902
NGNG0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNGてかそんなの関係ないだろ。
PCなんて2万円もあればとりあえずプログラム組むのに支障はないし
オープンソースにベッタリ粘着すればあとはタダで何もかも揃うし
自分でやるだろ
0919デフォルトの名無しさん
NGNG#include<stdio.h>
int jisaku(int a){
...
}
int main(void){
...
}
/***************/
↑のようにメイン関数の前に自分で作った関数を置くときでも
関数のプロトタイプ宣言をしなきゃならんのでしょうか?
コンパイルはできるみたいだけど、
Borland C++では宣言してくださいって
メッセージがでてるんで気になったもんで(^^;
0920デフォルトの名無しさん
NGNG必要ない
0921デフォルトの名無しさん
NGNG出ねーよ。
パラメータが省略されてりゃ出るがな。
0922デフォルトの名無しさん
NGNGtypedef struct QUEUE_DATA QUEUE_DATA
struct QUEUE_DATA
{
QUEUE_DATA *nextQueue;
char data[128];
};
0923デフォルトの名無しさん
NGNG__int64 Pair(int n, int r)
{
int i;
__int64 p = 1;
for(i = n; i > n - r; i--)
p = p * i;
return p;
}
__int64 Combination(int n, int r)
{
if(n < r) return 0;
return n < r * 2 ? Pair(n, n-r) / Pair(n-r, n-r) : Pair(n, n) / Pair(r, r);
}
int main(){
printf("%I64d\n", Combination(15, 12));
return 0;
}
VC++専用だけど…__int64をintにしても15C13とかなら解けます。
>>915 確かに高校で習う。というか今月習った。
0924デフォルトの名無しさん
NGNGインクルードガードをあえて使わないメリットって何?
0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNGディスクが節約できる。
0927デフォルトの名無しさん
NGNG使う側が多くなると逆に余分に食うけどな
0928デフォルトの名無しさん
NGNGA XOR Bの回路をAND,OR,NOTの回路のみを使って表しなさい。
これわからないんですが、教えてダサイ
0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNGfor,while,ifは関数ですか?
0931デフォルトの名無しさん
NGNGちがいます。
0932デフォルトの名無しさん
NGNGありがとうございました。
0933デフォルトの名無しさん
NGNGfor(){} とか while(){} とか if(){}とか。
void foo() とか書かなくてもいい位。似てるといえば似てる。
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNGだから区別の付けられないヤツが
空白開けろだの騒ぐわけだ。
0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNGあるわけねぇだろ、ぼけ。
好き好きでいいんだが、あまりに少数派な書き方をすれば、変態と言われるだけ。
あとは仕事の場合は、こう書けと決められている場合もある。これこそケースバイケース。
コーディングスタイルで検索しろ。
0939デフォルトの名無しさん
NGNGマジでいっているのか?
句読点の打ち方が解らない小学生みたいな奴だな。
0940デフォルトの名無しさん
NGNG宗教論争激しいからやらないんじゃないかと
0941デフォルトの名無しさん
NGNGK&Rまねとけ。それで文句を言うやつはボコってやれ。
0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNG0944デフォルトの名無しさん
NGNG英語の基本的なルールを判ってない香具師多過ぎ。
「括弧の内側空いてないと見難くないですか?」とか言いながら
演算子の両側を詰めるもんだから醜いったらないよ。
0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNGお前らそれしかないんかい
0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNGCRTってなんのことだ?
void main()がいけない理由はいくつかある。気になるなら過去ログを読め。
0949945
NGNGひとまずFAQの11.12〜11.15を読んでる。
0950945
NGNGQ.11.12より
> Declaring a function as void does not merely shut off or rearrange warnings:
> it may also result in a different function call/return sequence, incompatible with
> what the caller (in main's case, the C run-time startup code) expects.
関数をvoidとして宣言するのはウォーニングを殺すだけではなく、呼び出し元(main()の場合は
CRTスタートアップ)の期待する物と異なる、互換性の無い関数コール/リターンシーケンスに
コンパイルされる恐れがある。
Q.11.14より
> It doesn't matter whether main() returns or not, or whether anyone looks at the status;
> the problem is that when main() is misdeclared, its caller (the runtime startup code)
> may not even be able to *call* it correctly (due to the potential clash of calling conventions;
> see question 11.12). Your operating system may ignore the exit status, and void main()
> may work for you, but it is not portable and not correct.
main(0が値を返すか否か、又それをOS等がチェックするかが問題なのではなく、重要なのはmain()の
宣言がおかしければ、呼び出し元(ランタイムスタートアップコード)が正しくmain()を呼び出すこと
すらままならなくなる(関数呼び出しコード変換の内部的問題による→Q.11.12参照)ためである。
結局のところ移植性の面で問題が起きる。
コンパイラ(と、呼び出し側のCRT)がアホじゃなきゃ問題ないって話だが、intにしときゃ
尚更問題ない、と。
0951デフォルトの名無しさん
NGNGしかしこれを使うと改行コードまで読み込んでしまいますね
getsを使わず、しかも処理系に依存しない(改行コードのバイト数を考慮しない)
改行コードの取り除き方ってあるのでしょうか?
0952945
NGNGmain(0→main()
どうでもいいが。
0953デフォルトの名無しさん
NGNG普通は改行コードまで読んでから末尾から見ていって\rか\nを見つけたら削って\rでも\nでもなければ終了という関数で削り落とすと思う。
0954デフォルトの名無しさん
NGNGテキストモードで fopen() すればいいでしょ
0955デフォルトの名無しさん
NGNGそれこそMSな処理系ベッタリなんじゃね?
0956デフォルトの名無しさん
NGNGそーですか
0957デフォルトの名無しさん
NGNG0958951
NGNG改行コードってどんな処理系も\r \n \r\nしかないんですかね?
0959デフォルトの名無しさん
NGNG改行コードに使う環境は見たことないな。
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNGプ
0962デフォルトの名無しさん
NGNG0963951
NGNGありがとうございます。
0964デフォルトの名無しさん
NGNGえ、違うの?
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNGchar MS_06, MSM_09, MSN_02;
0969デフォルトの名無しさん
NGNGC言語を使って実装可能でしょうか?無理なら諦めます。
あと、環境依存ですかね。環境依存なら別スレいきます。
0970デフォルトの名無しさん
NGNG環境依存です。
0971デフォルトの名無しさん
NGNG分かりました。違うスレに行きます。
0972デフォルトの名無しさん
NGNG分かりました。違うスレに行きます。
0973デフォルトの名無しさん
NGNGUNIX系では無意味じゃない?
ひとまず実験してみた。
実験用ソース
#include <stdio.h>
int main(void) {
FILE *fp;
char hoge1[5], hoge2[5];
fp = fopen("input", "rb");
fgets(hoge1, 5, fp);
printf("rb: %d\n", strlen(hoge1));
fclose(fp);
fp = fopen("input", "r");
fgets(hoge2, 5, fp);
printf("r: %d\n", strlen(hoge2));
return 0;
}
$ gcc ./rb.c
$ perl -e 'print "\r\n";' > ./input
$ ./a.out
rb: 2
r: 2
環境はDebian Sarge/libc6(バージョン失念)
0974デフォルトの名無しさん
NGNGrb: 2
r: 1
0975デフォルトの名無しさん
NGNG旧MacOSは改行コードが\rだった。
CP/M-86は改行コードが\r\nで、ファイル末尾のレコードは\x1bが詰められていた。
MS-DOSもファイル末尾に\x1bが付加されているのが普通だった。
0976デフォルトの名無しさん
NGNG意味が曖昧だな。
自分で開いたならその名前を覚えておけばいいんじゃないのか?
0977デフォルトの名無しさん
NGNG改行コードが'\n'の環境では、そりゃ動作に違いは出ないだろう。
0978デフォルトの名無しさん
NGNGvoid main ( )
{
int count;
for ("count=0; count==5; count++" ) {
printf("count=5");
}
}
↑構成文エラーになるんですけど、どこか間違ってますか?
0979デフォルトの名無しさん
NGNGとりあえず、エラーとは無関係な void main に突っ込もうぜー( ̄ー ̄)
0980デフォルトの名無しさん
NGNG君はPerlでeval()をガンガン使うといいよ。
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNGvoid main()
はHP講座に書いてあったのを真似ただけなので。
0983デフォルトの名無しさん
NGNG>
> void main ( )
> {
>
> int count;
>
> for ("count=0; count==5; count++" ) {
↑ ↑ ↑
(1) (2) (1)
> printf("count=5");
> }
> }
>
> ↑構成文エラーになるんですけど、どこか間違ってますか?
↑
(番外)
0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNGうん、間違ってはいないね。ただ、for()ループ内が実行されることは一度たりと無いだけで。
0987デフォルトの名無しさん
NGNGエラーの原因じゃないけど間違ってるやん
0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNGvoid main ( )
{
int count;
for (count=0; count=5; count+=1 ) {
printf("count=5");
}
}
ありがとうございます。こうしたら出来ました。でも無限ループなっちゃいました。
countが5の時だけメッセージが出るようにしたかったのですが…
0990デフォルトの名無しさん
NGNGマジレスするとな、ダブルクォーテーションでくくられとる。
0991 ↓
NGNG0992デフォルトの名無しさん
NGNGまず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だYO!
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
各種リンクは>>3-20あたり(誰か適当に貼って)
C言語なら俺に聞け! Part 82
http://pc5.2ch.net/test/read.cgi/tech/1087049069/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0993デフォルトの名無しさん
NGNGcount=5は常に真。
0994デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1088147598/l50
0995デフォルトの名無しさん
NGNGわらった。ごめんね。
for (count = 0; count < 5; count += 1)
printf("count = %d\n", count);
0996デフォルトの名無しさん
NGNG開始する時にcountに0が代入される
↓←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←
count+=1で1加算される ↑
↓ ↑
count = 5でcountに5が代入される。count = 5は5と評価され、0(偽)ではないので真。 ↑
↓ ↑
真なのでループ→→→→→→→→→→→→→→→→→→→→→→→→→→→→→↑
0997デフォルトの名無しさん
NGNGアマグラマにお兄さんぶらせる機会を与えてるのかな?
いい奴だ
0998995
NGNGfor (count = 0; count < 5; count += 1)
if (count == 5)
printf("count=5");
0999デフォルトの名無しさん
NGNG;
1000デフォルトの名無しさん
NGNGアホかw
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。