スレ立てるまでもない質問はここで 第89刷
at TECH
1:デフォルトの名無しさん
08/02/11 19:44:11
質問する前にGoogleで検索しましょう。URLリンク(www.google.co.jp)<)
2:デフォルトの名無しさん
08/02/11 20:12:08
>/ // / // ______ / // /
> / // /| r'7\ ,.ヘ‐'"´iヾ、/\ニ''ー- 、., / /
> / / | |::|ァ'⌒',ヽ:::ヽrヘ_,,.!-‐-'、二7-ァ'´|、__
>`'ー-‐''" ヽ、_'´ `| |:::::|'" 二.,_> ,.へ_
> / //__// / / / `ヽ7::/
> か っ も | / // メ,/_,,. /./ /| i Y //
> ァ て う. |'´/ ∠. -‐'ァ'"´'`iヽ.// メ、,_ハ , |〉
> | 約 ク ヽ! O .|/。〈ハ、 rリ '´ ,ァ=;、`| ,ハ |、 /
> | 束 ソ > o ゜,,´ ̄ . ト i 〉.レ'i iヽ|ヽ、.,____
> | し ス / ハ | u ,.--- 、 `' ゜o O/、.,___,,..-‐'"´
> | た レ | / ハ, / 〉 "从 ヽ! /
> | じ は |,.イ,.!-‐'-'、,ヘ. !、_ _,/ ,.イヘ. ` ヽ.
> ッ .ゃ .立 |/ ヽ!7>rァ''7´| / ', 〉`ヽ〉
> ! ! な て .', `Y_,/、レ'ヘ/レ' レ'
> い .な ヽ、_ !:::::ハiヽ. // /
> で い ./‐r'、.,_,.イ\/_」ヽ ', / /
> す / `/:::::::/ /,」:::iン、 / /
> 〈 ,,..-‐''"´ ̄ ̄77ー--、_\.,__ /
> ,.:'⌒ヽ ´ | | , i |ノ `ヾr-、
3:デフォルトの名無しさん
08/02/11 22:52:17
ついに魚いなくなったか
4:デフォルトの名無しさん
08/02/12 00:30:02
>>1乙
_,rr-―''''¨゙゙゙ ̄ ̄ ̄ ̄ ̄`゙゙゙゙゙゙゙゙''ヘi、、 ,,,,-―---、
,r‐'″ ._,,,, `'lri,!'''″ ゙l
.,,,″ ,,r'"` ゙゙l, ゙ヘ, |
!アr, .l°.ェ'ニ,コ .| ゚ヘ、 |
`'i、 .く_,、vr''″ ., ゙'i、 .,,/
゙X、 ト ゙!,゛ .,,r‐--、
,、_,、 .,,,,r‐'″ | } .,,r‐'^’ .|゜
め゙゚“゙゙~゛ |  ̄` .,l゙
| ,i´ ,l゙
゙!、 ,i´ ,ノ
.'┐ ,,-° '=,, /`
.゚!, ,,,,r'″ ゙┐ ,l゙
゚'r, .''''"` │ .,,-''i、 /
`''x, .| | .,,r'" .゙┐ ,i´
~'ヘi,,, | |_,r・″ 'ヘ,、 l゙
`¬--|i,,,,,,,,,,,,,,,,v、r',广 ゙ヘ=@ ,l゙
`゙'ーぃ--r'″ `'―、,,,,/
5:デフォルトの名無しさん
08/02/13 16:59:17
戦いは終わった・・・
6:デフォルトの名無しさん
08/02/13 18:25:09
HSPからC++へ移行ってどうなの
7:デフォルトの名無しさん
08/02/13 18:55:37
どう、って、何が?
8:デフォルトの名無しさん
08/02/13 19:53:53
HSPはHSPを作ってる本人がプログラミング言語についてよく知らなさそうに思えて切なくなってくる。
9:デフォルトの名無しさん
08/02/13 20:29:33
所詮インタプリタだし
10:デフォルトの名無しさん
08/02/13 22:04:41
HSPコンパイラはどうなったの?
11:デフォルトの名無しさん
08/02/13 22:10:19
?
12:デフォルトの名無しさん
08/02/14 15:32:50
ぷw
13:デフォルトの名無しさん
08/02/14 18:18:29
HSPのインタプリタってJITコンパイラとかになってないのん?
14:デフォルトの名無しさん
08/02/14 18:48:56
平和だなー
15:デフォルトの名無しさん
08/02/14 22:54:51
指定日時になったかどうかを検出するのは、
1秒以下のタイマー張って毎秒判定するのが普通ですか?
ほかの方法ありますか?
16:デフォルトの名無しさん
08/02/14 23:03:33
指定日時までの時間でタイマーをセットすればいいだろ
知的障害でもあるのか?
17:デフォルトの名無しさん
08/02/14 23:09:25
タイマーにセットできる最大値以上の未来にも日時指定できることを想定してます。
タイマーにセットできる最大値は49日くらいでしたっけ?
18:デフォルトの名無しさん
08/02/14 23:11:58
へ?
19:デフォルトの名無しさん
08/02/14 23:13:18
FILEポインタをmainから関数に渡すとおかしくなるんですが、原因はなんでしょう?
・
・
FILE *fp;
fp=fopen("honya", "r");
function(fp);
・
・
function(*FILE) {
・
・
}
アドレスは同じものが行ってるんですが、内容が違ってました。
rewindやっても一緒だったんですが・・・
20:デフォルトの名無しさん
08/02/14 23:25:36
>>19
*FILEってなんのつもり
21:デフォルトの名無しさん
08/02/14 23:26:34
>>19
関数内のファイルポインタの結果を
関数コール元のファイルポインタの中身にも反映させるには、
ファイルポインタのアドレスを渡さないと。
FILE *fp;
fp=fopen("honya", "r");
function(&fp);
・
・
function(**fp) {
・
fread(,,,*fp);
fprintf(*fp,・・);
・
}
22:デフォルトの名無しさん
08/02/14 23:31:12
>>18
SetTimerに与えられるタイムアウト値はUINTなので、4294967295までですよね?
単位がmsなので、
4294967295÷1000÷3600=1193日
1193÷24=49.7日
と思ってましたが違いますか?
23:デフォルトの名無しさん
08/02/14 23:32:46
4294967295÷1000÷3600=1193日
↓
4294967295÷1000÷3600=1193時間
24:デフォルトの名無しさん
08/02/14 23:35:16
>>21
関数内部でfopenして、呼出元が所有権を持つ(fcloseする責を負う)のでない限り、
FILE**にする必要はない。FILE*をやり取りすれば十分。
freadやfprintfはFILE型そのものを見ているのであって、
FILE*を見ているのではないのだから。
25:デフォルトの名無しさん
08/02/14 23:37:06
昔 95系のOSに 49日以上連続で動かすと落ちるOSバグがあったな。
なむー。
atコマンドでダメなの?APIは知らんが。
26:デフォルトの名無しさん
08/02/14 23:38:57
>>22
100日後に設定したければ25日を4回でも、40日を2回と20日を1回でもいいじゃん。
ITaskScheduler使ったほうがいいと思うけど。
27:デフォルトの名無しさん
08/02/14 23:41:06
>>24
>>19はコール元でfopen()してるわけですが?
28:デフォルトの名無しさん
08/02/14 23:48:34
>>22
Windowsか?それならCreateWaitableTimerはどう、NT限定だけど。
あとはタスクスケジューラでプロセス起動とか。
あと、SetTimerはあまり大きな値を指定できないぞ。
具体的にはUSER_TIMER_MAXIMUM = 0x7ffffffff
URLリンク(msdn2.microsoft.com)
29:デフォルトの名無しさん
08/02/14 23:57:32
>>21
FILE *fp だと fp がすでにアドレスじゃないの?
30:デフォルトの名無しさん
08/02/15 00:07:16
>>29
今説明書いてるけど、ポインタの説明を文字だけでするの難しい・・・・
今しばらくお待ちを。
31:デフォルトの名無しさん
08/02/15 00:15:23
>>29
ファイルポインタはファイル操作関数を使うことでfpが示すアドレスが変わるだろ?
で、fpのバッファはmainが持ってるわけで、
このmainが持ってるバッファ内の値=アドレスが変わる。
ここまではOKのはず。
で、function(fp)だと、関数はバッファ内の値=アドレスを受けるわけ。
下位関数は受けた値=アドレスを上位関数が持ってるバッファとは違うスタック領域へ格納するので、
この関数内でファイル操作関数を使うと、
スタック領域に格納されたアドレスは変わるけど、
上位関数が持ってるfpバッファ内のアドレスは変わらないんだよ。
そこでfpのアドレス=アドレスが格納されてるバッファのアドレス=&fpを下位関数に渡すことで、
下位関数でのファイル操作の結果を上位関数が持ってるバッファ内のアドレスへ反映させるんだよ。
ポインタのポインタになるからわかりにくいけど、
[FILE [*fp]]を[int [iDat]]と考えれば同じこと。
上位関数のiDatを下位関数に渡しても上位関数が持ってるiDatの値は変わらないけど、
&iDatを渡して*iDatで受ければ、下位関数内で*iDatの中身を変更すれば、
上位関数が持ってるiDatの中身も変わる。
fpはポインタだから&fpで渡して**fpで受けて関数内では*fpで使う。
32:デフォルトの名無しさん
08/02/15 00:18:53
ちなみに**fpで受けた関数からさらに下位関数へ渡すときは、
fpはすでにポインタのポインタなのでfunction2(fp)で渡して**fpで受けて*fpで使う。
33:デフォルトの名無しさん
08/02/15 00:28:06
>>31
堂堂と大嘘を書かれても困るんだが。
34:デフォルトの名無しさん
08/02/15 00:28:53
・・・・・・・・・・・・・・・
ま、コード書いて動かしてみればわかるよ。
35:デフォルトの名無しさん
08/02/15 00:32:09
ポインタ変数って何かわかってる?
アドレスを格納するためのバッファだよ。
int iDat; ← int型のデータを格納するためのバッファ
int *iDat; ← アドレスを格納するためのバッファで、
格納されてるアドレスの示す先のデータがint型
36:デフォルトの名無しさん
08/02/15 00:33:57
int **iDat; ← アドレスを格納するためのバッファで、
格納されてるアドレスの示す先も、アドレスを格納するためのバッファで、
そこに格納されてるアドレスの示す先のデータがint型
37:デフォルトの名無しさん
08/02/15 00:34:23
>ポインタ変数って何かわかってる?
>アドレスを格納するためのバッファだよ。
>35自身が判っていないのに説明しようとして苦労するもののことだね。
38:デフォルトの名無しさん
08/02/15 00:39:18
>>37
で、ポインタ変数ってなにかわかってる?
わかってない俺のためにちょっと説明してみてくれないか?
39:デフォルトの名無しさん
08/02/15 00:43:14
ほれ、わかりやすそうなのあったから貼っといてやるよ。
俺が文字だけで説明するよりは遥かにわかり易いだろうから勉強しときなさい。
URLリンク(www9.plala.or.jp)
(1)変数とアドレス
ポインタについて理解するには「アドレス」とは何かをまず理解してください。
略)
(2)ポインタとは
ポインタとはアドレス変数、つまり変数のアドレスを記憶する変数のことです。
40:デフォルトの名無しさん
08/02/15 00:45:07
>>38
少なくとも、「アドレスを格納するバッファ」では説明が足りてないな。
つーか、わかってないなら他人任せにせず勉強してきたら?
41:デフォルトの名無しさん
08/02/15 00:46:05
>>39
ほほぉ、変数以外のもののアドレスを記憶するとポインタじゃなくなるのか。
42:デフォルトの名無しさん
08/02/15 00:48:58
だから、>39は地雷だから読んじゃダメだってば。
43:デフォルトの名無しさん
08/02/15 00:49:05
>>41
いまさらあげ足取り?w
31のどこがどう間違ってるのか説明してみなよw
44:デフォルトの名無しさん
08/02/15 00:49:57
>>31
文字列をやり取りするときchar**をやりとりするか?
単にchar*やconst char*をやり取りするだろ。
FILE**ではなくFILE*を使うことも、それと同じようなもの。
45:デフォルトの名無しさん
08/02/15 00:50:02
>>40
>つーか、わかってないなら他人任せにせず勉強してきたら?
つーか、説明できないなら噛み付くなよw
46:19
08/02/15 00:50:34
みんな俺のことで喧嘩しないで!!!
47:デフォルトの名無しさん
08/02/15 00:52:07
喧嘩も何も、判ってないのに教えたがりな>31が一人で暴れているんだろ。
48:デフォルトの名無しさん
08/02/15 00:52:41
>>19
20の指摘する通り*FILEが意味不明。K&Rスタイルでもないし。
やるならvoid function(FILE *f)のような書き方のはず。
関数宣言の書き方の復習しよう。
以上で用済み。
49:デフォルトの名無しさん
08/02/15 00:53:07
>>44
は?
そんなの使い方によるよw
char **を使うことだってあるっての。
ってか文字列は配列だから、char*に文字列のアドレスを渡すのと、
FILE*を扱うのとは違うわですが?
ポインタっての全然わかってないみたいだな。
50:19
08/02/15 00:53:23
FILEディスクリプタを扱うポインタは他のポインタと比べて少々特殊である。でOK?
51:19
08/02/15 00:53:53
>>48
ただのタイプミスです(><)
52:デフォルトの名無しさん
08/02/15 00:55:23
>>47
説明できもしないやつが暴れてるんだろw
間違ってるなら間違ってるで指摘すりゃいいだけの話。
指摘もできない説明もできないのに「おまえわかってない」とかいわれてもねぇw
53:デフォルトの名無しさん
08/02/15 00:55:47
>>50
特殊じゃなくて普通のポインタといっしょだっての。
54:デフォルトの名無しさん
08/02/15 00:57:26
>>49
もちろんFILE**を使う場合もある。それはどんなときかと言えば24に書いたとおり。
実用性0だけど例えばこんな感じ。
void my_fopen(FILE **f, char const *file, char const *mode)
{
*f = fopen(file, mode);
}
55:デフォルトの名無しさん
08/02/15 00:58:58
>>50
ポイント先が明示的に存在していない可能性があると言う点で、FILE * は特殊。
ポインタ変数のことをバッファなんて言い方してしまっている>31にとってはどうかしらないけれど。
56:19
08/02/15 00:59:06
>>53
一緒なの?
・
・
FILE *fp;
fp=fopen("honya", "r");
function(fp);
・
・
function(FILE *fp) {
・
・
}
main内と関数内でfpを表示した場合は一緒だったけど、*fpの値は10進で160違ってた・・・
57:デフォルトの名無しさん
08/02/15 01:00:01
たとえば一番よく使う文字列を例えるなら、
FILE *fp[10];
fp[0] = fopen;
と使うなら、
function(fp)
-----
function(FILE *fp)
{
fp
や
(fp+0)
や
(fp+1)
って使い方ができる。
}
charポインタしか使ったことない奴はポインタのこと理解できてないんだよ。
58:デフォルトの名無しさん
08/02/15 01:01:41
>>56
FILE*をデリファレンスしてはいけません。
そこにファイルはありません。
眠ってなんかいません。
59:デフォルトの名無しさん
08/02/15 01:02:23
>>54
だから、fopenは上位関数でやってるだろっての。
普通に>>19のコードを見れば、
functionをフープ内で何度も使うコードだと思わないか?
上位関数でfopen/fcloseして、readを下位関数でやるんだろ。
おまえ、ループ内で下位関数にファイル操作させたことないのか?
60:デフォルトの名無しさん
08/02/15 01:02:29
>>57
できない。Cならたぶんコンパイラ警告、C++なら絶対コンパイルエラー。
61:デフォルトの名無しさん
08/02/15 01:04:35
>>60
やってみろw
62:デフォルトの名無しさん
08/02/15 01:05:04
>>59
落ち着け。顔が真っ赤だぞ。
落ち着いたら、rとfの打ち間違いに注意するんだ。
63:デフォルトの名無しさん
08/02/15 01:05:55
あ、もしかしてまた揚げ足とりか。
function(FILE *fp)
{
fp
や
*(fp+0)
や
*(fp+1)
って使い方ができる。
}
64:デフォルトの名無しさん
08/02/15 01:07:40
いいえ。
65:デフォルトの名無しさん
08/02/15 01:08:09
>>19
もういいから、まだいるなら騙されたと思って>>21のコードで試してみな。
66:19
08/02/15 01:10:03
はーい
67:54
08/02/15 01:13:45
>>61>>>63
function(fp)と呼び出す部分で、型が合わないのでエラーや警告になるはずだ。
実引数はFILE *[10](FILE**への変換前)、仮引数はFILE*。
functionの仮引数のfpはFILE *fp[]やFILE **fpならいい。
この用法でのFILE**は忘れていた、すまん。
68:デフォルトの名無しさん
08/02/15 01:16:24
そもそも、>19は一体全体どんなコードを実行してどうだったと言いたいんだ?
中途半端なコードを載せるから>31が嬉嬉としてごみを垂れ流す羽目になるんだ。
69:デフォルトの名無しさん
08/02/15 01:17:08
ちょっと長いんですが、プログラムに詳しく分かる方いましたらお力貸してくださいまし。。
以下に掲げたおこずかい帳プログラムの説明を書きなさい。ただし、書き方は次の例
を参考にすること。
<form name=f>
<input type=text name=i value="">
<input type=button value="偶奇判定" onClick="check()">
</form>
<script>
function chech(){
var a=Number(document.f.i.value);
a=a+1;
if(evenp(a)) alert("偶数");
else alert("奇数");
}
function evenp(a){return a%2==0}
</script>
70:デフォルトの名無しさん
08/02/15 01:17:40
つづき
【説明例】
formタグとinputタグによって、画面にテキスト文字表示窓と偶奇判定用のボタンを
表示。この際、ボタンをクリックした時、関数check()を呼び出すように設定する。
関数checkは、テキスト文字窓から入力された値(document.f.i.value)を関数Number
によって数値に変換し、これを変数aに代入する。ついで、aの値を1増やし、関数
evenpによって変数aの値が偶数か、奇数か判別し、偶数の時は"偶数"、奇数の時は"
奇数"とalertウィンドウに表示する。
関数evenpは、与えられた値(a)が偶数かどうか判別(aを2で割った余りが0かどうかで
判定)し、結果(trueかfalse)を返す。
------------------------
71:デフォルトの名無しさん
08/02/15 01:18:39
抽象化して考えろよ・・・なんのために不完全型になってるんだよ
72:つづき
08/02/15 01:18:40
<h3>おこずかい帳</h3>
<form name=kozukai>
品物<input type=text value="" name=sinamono>
値段<input type=text value="" name=nedan>
<input type=button value="記録" onClick="kiroku()">
<input type=button value="並び替え" onClick="sort()">
<input type=button value="修正" onClick="teisei()">
<input type=button value="削除" onClick="sakujo()">
</form>
<div id="area"></div>
<script>
var Table=new Array(); // {good: price:}
var count=0; // 登録される品物の個数
function kiroku(){
var good=document.kozukai.sinamono, price=document.kozukai.nedan, pos;
if((pos=aruQ(good.value))==-1){
Table[count]={good: good.value, price: Number(price.value)};
count=count+1;
}
else{
Table[pos].price=Table[pos].price+Number(price.value);
}
good.value="";
price.value="";
display();
}
73:デフォルトの名無しさん
08/02/15 01:19:25
<h3>おこずかい帳</h3>
<form name=kozukai>
品物<input type=text value="" name=sinamono>
値段<input type=text value="" name=nedan>
<input type=button value="記録" onClick="kiroku()">
<input type=button value="並び替え" onClick="sort()">
<input type=button value="修正" onClick="teisei()">
<input type=button value="削除" onClick="sakujo()">
</form>
<div id="area"></div>
<script>
var Table=new Array(); // {good: price:}
var count=0; // 登録される品物の個数
function kiroku(){
var good=document.kozukai.sinamono, price=document.kozukai.nedan, pos;
if((pos=aruQ(good.value))==-1){
Table[count]={good: good.value, price: Number(price.value)};
count=count+1;
}
else{
Table[pos].price=Table[pos].price+Number(price.value);
}
good.value="";
price.value="";
display();
}
74:デフォルトの名無しさん
08/02/15 01:20:23
function aruQ(g){
var i;
for(i=0; i<Table.length; i=i+1){
if(g==Table[i].good) return i;
}
return -1;
}
function sort(){
bsort(Table, lessp);
display();
}
function bsort(a,cmp){
var i,j,x,size=a.length;
for (i=0; i < size; i=i+1){
for (j=size-1; j > i; j=j-1){
if (cmp(a[j],a[j-1])){
x = a[j-1];a[j-1] = a[j]; a[j] = x;
}
}
}}
function lessp(a,b){return a.price<b.price; }
</script>
わかる方教えてください。。
75:デフォルトの名無しさん
08/02/15 01:20:41
>>69
・formタグにおいて、アクションが指定されていません。
・scriptタグにおいて、処理系の宣言がされていません。
・inputタグにおいて、関数check()が見つかりません。
つーか、鼬害だろ。
76:デフォルトの名無しさん
08/02/15 01:27:40
VB.NET2003のフリーソフトを探してるんだが、もう無いのかな?
2003 Express editionみたいなのがあれば嬉しいんだが。
77:デフォルトの名無しさん
08/02/15 01:34:11
76だけど、俺の言葉分かる?
日本語になってる?
78:デフォルトの名無しさん
08/02/15 01:38:55
>>76
昔からなかったと思う。
ただ.NET Framework 1.1にはVB.NETのコンパイラが入っている。
79:デフォルトの名無しさん
08/02/15 01:42:31
>>77
「VB.net2003相当のフリー版は無いのか?」って質問だろ?
大丈夫、一応日本語になっている。
80:デフォルトの名無しさん
08/02/15 01:48:15
>>78
マジか。ってことはFramework 1.1を使うには.NETのコンパイラを買わないとダメなのか?
81:デフォルトの名無しさん
08/02/15 01:49:51
>>79
そっか。ありがとう
82:デフォルトの名無しさん
08/02/15 02:03:13
>>80 Framework は無料で配布されてるだろ?
83:デフォルトの名無しさん
08/02/15 02:04:43
>>80
>>78が言っているのはNET Framework 1.1 SDKのことじゃないのか?
それなら無料で入手できるはず。
すべてコマンドプロンプトで作業しなければならないので不便なことは確かだけど、
それでも .NET Framework 1.1 のアプリを開発することはできるはず。
84:デフォルトの名無しさん
08/02/15 02:07:27
いや、SDKではなくランタイムとかの方で十分。
%FrameworkDir%\%FrameworkVersion%
(1.1なら%WINDIR%\Microsoft.NET\Framework\v1.1.4322)にvbc.exeがころがっている。
85:デフォルトの名無しさん
08/02/15 02:09:06
え、そうなの?
ぜんぜん知らなかった。
86:デフォルトの名無しさん
08/02/15 02:49:33
>>82-84
正直、VB.NET Framework 1.1で動作すれば良いんだ。
おれもNET Framework 1.1はさっきインストールしたんだけど。
87:デフォルトの名無しさん
08/02/15 03:25:52
86だがこれで2003として使えるのかな?
URLリンク(www.microsoft.com)
88:デフォルトの名無しさん
08/02/15 03:27:02
>>84
そうなのかと思って見てみたら、そこにはほとんど何もなくて、v2の方にしかvbc.exeがなかったよ。
89:デフォルトの名無しさん
08/02/15 03:38:28
流れ無視で申し訳ないのですが、質問です。
サイトやブログなどのHTMLに書いたコードにインデントがついていたり
予約語などに色がついていたりして見やすくなっているのをよく見かけるのですが
あれはどうやっているのでしょうか?専用のツールなどがあるのでしょうか?
検索しようにも言葉がうまく出なかったので質問させていただきました。
よろしくお願いします。
90:デフォルトの名無しさん
08/02/15 03:48:23
シンタックスカラーリングとか構文の色表示とか構文カラーとかシンタックスハイライトとか
それにhtmlエディタとかで検索してみれば?
91:デフォルトの名無しさん
08/02/15 03:49:26
firefoxならただ単にソースを表示すればそうなる。
ただインデントは付かず、カラーリングされるだけ。
92:デフォルトの名無しさん
08/02/15 03:51:24
簡単な物なら bison/flex で作ると
いい練習問題になるよ。
93:デフォルトの名無しさん
08/02/15 03:52:11
あ、すまん
ウエブ上で表示しているやつか
あれはブログでそういう機能を用意されているところもあったり
構文解析してタグを入れたものを出力してくれるツールがあったりいろいろ
とりあえずシンタックスカラーとかで検索してみれば?
94:デフォルトの名無しさん
08/02/15 03:55:31
こんなにレスもらえるとは思ってませんでした。
ありがとうございました。
95:デフォルトの名無しさん
08/02/15 04:17:03
>>88
.NET Framework 1.1をインストールしていないだけでは?
試しに.NET 1.1のインストーラをダウンロードしてやってみな
96:デフォルトの名無しさん
08/02/15 09:16:59
>>95
その通りだった。
確認したPCは1.1を入れてたものに2をさらに入れていたと思い込んでいたが、実は2しかインストールしていなかった。
97:デフォルトの名無しさん
08/02/15 10:18:03
今日patch童貞卒業を目論む者です
あるライブラッリをconfigure && makeしようと思いソースを落としたのですが
hoge-20060909-patch.sh.bz2 hoge-3.cygwin.patch*
hoge-20060916.patch.gz hoge-3.extra.patch*
hoge-20060923.patch.gz hoge-3.src.patch*
hoge-20060930.patch.gz hoge.tar.gz
hoge-20061007.patch.gz
hoge-20061014.patch.gz
hoge-20061021.patch.gz
hoge-20061028.patch.gz
hoge-20061104.patch.gz
hoge.cygport
みたいなかんじで*.patchや意味ありげな拡張子なものが
いっぱいあってとまっどっています(tar.gzが本体っていうのは分かります(^^;
日付順にあてるのでしょうか? 最新のものだけをあてるばよいのでしょうか?
98:デフォルトの名無しさん
08/02/15 10:26:40
readmeに記述がなければ日付順に全部
99:デフォルトの名無しさん
08/02/15 10:31:02
違ってたらエラーでる
100:デフォルトの名無しさん
08/02/15 13:04:36
int uruu(int y)
{
// 閏年かどうかの判定
return y % 4 == 0 && y % 100 != 0 || y % 400 == 0;
}
このreturnは何を返しているの教えてください
お願いします
101:デフォルトの名無しさん
08/02/15 13:08:49
条件判定式の値は、条件が真なら1、偽なら0になる。この場合、
(yが4の倍数 かつ yが100の倍数でない) または (yが400の倍数)
が真なら1、偽なら0が返される。
西暦が4の倍数が基本的に閏年だけど、100の倍数は閏年にならない。
ただし400の倍数は閏年、というのを判定している。
102:デフォルトの名無しさん
08/02/15 13:13:01
>>100
y % 4 == 0 && y % 100 != 0 || y % 400 == 0 を返している・・・じゃだめか?
if ( uruu(2008) ) { ... } のように使うと思えば、わかりそうな気がするけど
103:デフォルトの名無しさん
08/02/15 13:25:47
>>101
>真なら1、偽なら0が返される
自分は正確なことは知らないんだけど、真の時1 ってのは言語仕様で決まってるの?
104:デフォルトの名無しさん
08/02/15 13:27:31
決まってる
105:デフォルトの名無しさん
08/02/15 13:31:47
論理/関係演算子の返す値はそう決まっている。
ちなみに BASIC 系だと真は -1 だから、
VB で慣れてる人は注意な。
106:デフォルトの名無しさん
08/02/15 13:42:53
>>104 >>105
どうもありがと。
107:デフォルトの名無しさん
08/02/15 13:52:18
そうなのかと思った後、一応気になって
URLリンク(www.jisc.go.jp)
で確認したけど、このサイト異様に遅いし、OperaだとなぜかPDF開けないし、PDFは閲覧だけでファイル保存できないし、
なぜかPDFも検索ができないし最悪。
日本のソフトが育たない理由が何となくわかる。
108:デフォルトの名無しさん
08/02/15 13:58:24
買っても検索できないらしいぜ・・・。
109:100
08/02/15 14:05:17
>>101>>102
遅くなってすみません
真なら1、偽なら0・・・なるほどぉ、そういうことだったんですね
ありがとうございました
110:デフォルトの名無しさん
08/02/15 14:23:06
>107
保存できたよ
111:デフォルトの名無しさん
08/02/15 14:28:34
変数名・メソッド名・クラス名などの「名前の付け方」は、ある程度のお約束というか慣習があると思うのですが
そういうのはどうやって学んだらいいんでしょうか?
本とか読みまくってるうちに自然と身に付くものなんですか?
112:デフォルトの名無しさん
08/02/15 14:36:02
言語によって違うけど、例えばJavaの場合は言語仕様書に書いてある
C/C++ではいろんな方式が乱立してて特にこれと決まったものはない
113:デフォルトの名無しさん
08/02/15 14:38:22
例えばC言語だったら標準関数を参考にする
114:デフォルトの名無しさん
08/02/15 14:39:54
独学するなら自分の中で一定のポリシーを持ってればOK
Javaの規約は読んでおいたほうがいいね
いいソフトやいいソースと呼ばれるものを読んでいると勘所が掴めるかも
115:111
08/02/15 15:06:30
ありがとうございます。申し遅れましたがC#がメインです。
一応自分の中でポリシーを持ってるので、一人でやる分には問題ないのですけど。
グループで共同作業をする場合とかはこの辺ちゃんと考えないと大変ですよね。
最初に記法というかポリシーみたいのを全部決めておくんでしょうか?
116:デフォルトの名無しさん
08/02/15 15:08:41
プロジェクトで決まってることもある。
特定のライブラリに大部分依存するプロダクトであれば、ライブラリに合わせたりとか。
117:デフォルトの名無しさん
08/02/15 15:10:02
本当に最初のうちはあまり決めないほうがいいかもしれない。
どこか途中で決めることになるかもしれないけど。
118:デフォルトの名無しさん
08/02/15 15:20:24
C#ならマイクロソフトのガイドラインを参考にするのもいい
119:111
08/02/15 15:25:07
そうですね。色々な本や資料を見ながら常識的なポリシーを築いていきたいと思います。
もう1つお聞きしたいのですが、規模が大きくなるほど(共同作業のプロジェクトの場合はなおさら)
名付け方1つ違うだけで可読性に大きく差が出てくるような気がするのですが。
可読性=生産性と考えると、名付け方というのは相当に重要なポイントではないでしょうか?
(プロジェクトリーダーの力量が問われるところ?)
120:デフォルトの名無しさん
08/02/15 16:19:41
>>118
お前のチンコがマイクロソフトなんだぜ?
121:デフォルトの名無しさん
08/02/15 16:29:27
0が真でそれ以外が偽というのもあるなー
いずれにせよマジックナンバーはオススメできないよなぁ
122:デフォルトの名無しさん
08/02/15 17:34:48
>>121
そして、
#define TRUE 0
#define FALSE !TRUE
int isHoge() {
reutrn TRUE; // or FALSE
}
int hoge() {
if (isHoge()) {}
}
とかやってしまうアホが出てくるんだろうなぁ。
123:デフォルトの名無しさん
08/02/15 17:37:39
そいえばFortran使ってたころ痛い目見たなぁ・・・(遠い目
bool型のない言語って最近はないですよね?
124:デフォルトの名無しさん
08/02/15 17:44:11
>>121
shellがそうだね。だから、testコマンドの振る舞いがちょっと変。
125:デフォルトの名無しさん
08/02/15 18:06:48
>>123
PHPは無いんじゃなかろうか。
echo true とかすると 1 って出るし。
でも困った事はない。
126:19
08/02/15 18:15:23
>>21の方法でやってもセグメンテーションエラーになりました・・・
関数内でfgetc呼んだ時点でなってるようなんですが・・
127:デフォルトの名無しさん
08/02/15 18:22:21
>>126
今日も続ける心算なら、実際にコンパイルしたソースを貼ってくれ。
ついでに言えば、>21は昨日の滓が書いたコードだから無視していい。
128:デフォルトの名無しさん
08/02/15 18:27:50
>>125 と思ったらあるみたい。
URLリンク(jp2.php.net)
echo true で 1って出るのは暗黙の型変換でもされてるんだろうか。
よくわからん。
129:デフォルトの名無しさん
08/02/15 20:07:05
>>118 MSDNの例?
そういや自分MSDNにある命名規則とはずいぶん違うなあ
List変数を今までList<Hoge> hogeListとしてたけど、hogesのほうが一般的?
130:デフォルトの名無しさん
08/02/15 23:04:20
>>129
コンテナがlistであることに意味がある場合は兎も角、
そうでないならListとつけるのはどうだろう。
# でもまぁ、hogeListとかlistHogeとかhogesとかどれも見掛けるなぁ。
131:デフォルトの名無しさん
08/02/15 23:23:38
意味あっても無くても付けるだろ普通
listなら〜List、mapなら〜Map、配列なら〜Arrayって感じで。
その方がプログラム構造が視覚的に分かりやすいよ。
132:デフォルトの名無しさん
08/02/15 23:27:12
>>131
開発の途上でコンテナを変えたときにはリネームするの?
133:デフォルトの名無しさん
08/02/15 23:31:41
>>131
やっぱりそうだよね。
#VSとかのIDEならポップアップですぐ型が分かるし無問題、って言う人もいるかもしれんけど。
134:デフォルトの名無しさん
08/02/15 23:35:47
>>132
そりゃ当然
135:デフォルトの名無しさん
08/02/15 23:42:32
ご愁傷様。
136:デフォルトの名無しさん
08/02/15 23:42:48
C++でリストって言ったらstd::listで線形リスト、
C#でリストって言ったらList<T>で動的配列。
もちろんC++書いているときには、
C#のことは頭の隅に追いやるし、逆もまた然りなんだけど、
ことコンテナの名前は言語・環境によって様々な名前を持っているから、
変数名に付けたいとは思わない。
137:デフォルトの名無しさん
08/02/15 23:45:01
ただのシステムハンガリアンじゃん
138:デフォルトの名無しさん
08/02/16 00:05:45
<T>って何を表してるの?
139:デフォルトの名無しさん
08/02/16 00:06:25
テンプレート引数
140:デフォルトの名無しさん
08/02/16 00:08:26
「何らかのコンテナであること」を変数名に含めるのもNGなの?
コンテナはコンテナって分かったほうが把握しやすいと思うんだけど。
141:デフォルトの名無しさん
08/02/16 00:14:54
複数形で十分じゃない?
142:デフォルトの名無しさん
08/02/16 00:37:46
単複同形や不可算名詞の時どうするんだろうといつも思う
143:デフォルトの名無しさん
08/02/16 00:38:09
eclipse使ってりゃリネームなんて何の苦労も無いし
144:デフォルトの名無しさん
08/02/16 00:43:09
>>136は正論だと思うけど、あちこちに複数形の変数がやたら増える方が嫌だな〜俺は
145:デフォルトの名無しさん
08/02/16 00:54:48
>>142
問答無用でs付けちゃ駄目?
ガイジンはどうしてるんだろ?
146:デフォルトの名無しさん
08/02/16 02:28:11
DLLやEXEのインポートテーブルを調べてどのバージョンのWindowsから実行できるか検査するソフトってないですか?
たとえば、VC2005にて通常の方法で生成したEXEなどはWindows 95 などではIsDebugPresentsが存在しないので
エラーになってしまうのですが、それをチェックできるソフトってないかなと
知っている方がいたら教えてください
147:デフォルトの名無しさん
08/02/16 03:35:09
試用版と、アップデート版があるのですが、
ファイルサイズはまったく同じで、MD5も同じなんです。
これはまったく同じファイルなのでしょうか?
148:デフォルトの名無しさん
08/02/16 03:43:08
同一かどうか調べるなら diff とった方がいい
149:デフォルトの名無しさん
08/02/16 04:03:51
あ、すいません、テキストではなくバイナリなんです。
念のため、diffに突っ込んでみましたが、特に同じようです。
crc、MD5も同じなのに。
年間100万の契約したファイルと試用版が同じファイルなんて・・・。
150:デフォルトの名無しさん
08/02/16 04:11:00
diff はバイナリにも使える。
違いがあるかどうかしか分からないけど。
151:デフォルトの名無しさん
08/02/16 04:15:06
わざわざ別バイナリにするより、キーとかで制限掛けるほうが
売る方としては合理的だと思うが。
それに使う側としても同じだから何か困る?
せこいことするのが前提なら別だけど。
152:デフォルトの名無しさん
08/02/16 06:47:03
PHPとかPerlとかの良く使う関数をA4一枚(もしくは数枚?)にまとめた海外サイトを
どこかで見た記憶があるんですが、ご存知の方いませんか?
それっぽいキーワードでぐぐったり、記憶の糸を辿ってみたんですが見つかりませんでした
153:デフォルトの名無しさん
08/02/16 07:00:59
(a<<8)+b
と
a<<8+b
の結果がちがうんですけど
なんでですか
154:デフォルトの名無しさん
08/02/16 07:16:35
>>153
何の言語か知らんが、ふつうは + の方が優先順位が高いので、下のは
a << (8+b)
になる。
155:デフォルトの名無しさん
08/02/16 09:18:33
>>149
輸入車ディーラーで、試乗車が違う仕様だったら嫌でしょ?
# フェラーリに試乗したらエンジンがスバルだったとかw
156:デフォルトの名無しさん
08/02/16 13:07:10
>>152
そういうのは、cheat sheetって言うんだよ
157:デフォルトの名無しさん
08/02/16 13:14:01
日本語でいうカンペ,アンチョコだな
158:デフォルトの名無しさん
08/02/16 13:18:49
デバッガについて教えてください。初心者です。Ollydbgを使っているのですが、
「アドレス00xxxxxxにBPを再スタートする」とはどういうことなのでしょうか?
BPを調べてみるとブレークポイント、レジスタのEBP(ベースポインタ)がありますが関係ありますか?
159:デフォルトの名無しさん
08/02/16 13:21:42
>>155
?
160:デフォルトの名無しさん
08/02/16 14:22:31
>>159
試用版が製品版と同一なのは歓迎こそすれ、問題となるような点は無いってことだろ。
161:デフォルトの名無しさん
08/02/16 14:24:54
それじゃあ試用版買う意味なくなるじゃん・・・
162:デフォルトの名無しさん
08/02/16 14:25:14
間違えた、試用版買う意味なくなる
163:デフォルトの名無しさん
08/02/16 14:25:22
サポートとライセンス代だろjk
164:デフォルトの名無しさん
08/02/16 14:29:51
>>162
製品版買う意味なくなる、だろ。
165:デフォルトの名無しさん
08/02/16 14:34:06
その試用版を適用したデータが軒並公開不可能になることにさえ目をつぶればな
166:デフォルトの名無しさん
08/02/16 15:20:21
どのソフトらを念頭に置いて言ってるの?
167:デフォルトの名無しさん
08/02/16 21:35:21
WIN32 APIのSetROP2と同じ様な機能を持つ、CarbonAPIをご存じの方いませんか?
168:デフォルトの名無しさん
08/02/17 00:43:03
某ソースがうpされてるんだが繋がらない・・・俺だけ?
URLリンク(www2.uploda.org)
169:デフォルトの名無しさん
08/02/17 01:50:44
#ifndef _FILE_DEFINED
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
#define _FILE_DEFINED
#endif
という定義の中の*_tmpfnameを表示させようとしたんですがうまくいきません。
printf("tmpfname :%c\n",*fp->_tmpfname);
を実行するとエラーで落ちるんですがこれじゃダメですか?
170:デフォルトの名無しさん
08/02/17 02:03:31
>>169
FILEの中身をデリファレンスしちゃいけません。
ってのはさておき、先ずはprintf("%p\n", fp->tmpfname)してみるんだ。
171:デフォルトの名無しさん
08/02/17 02:27:53
>>170
おぉ、なんかわからんがエラーにはなりませんでした!
でも00000000でした。名前が入ってるのかと思ったのに。
ありがとうございました。
172:デフォルトの名無しさん
08/02/17 02:36:21
>>170
でも、
#ifndef _FILE_DEFINED
struct _iobuf {
char *_ptr; ←こいつと
int _cnt;
char *_base; ←こいつはちゃんと表示されたんですけど何が違うんですか?
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
#define _FILE_DEFINED
#endif
173:デフォルトの名無しさん
08/02/17 03:00:19
>>156
ありがとうございます
おかげで見つかりました
174:デフォルトの名無しさん
08/02/17 03:08:41
環境
OS: 32-bit XP
CPU: Q6600
Compiler: MS Visual C++
にて、コンパイル時に
c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(19) : error C2054: 'f' の後に '(' が必要です。
となるのでそこを見てみると、
typedef _W64 unsigned int size_t;
とあります。64ビットのオプションか何かの問題でエラーが発生しているのでしょうか?
175:デフォルトの名無しさん
08/02/17 03:11:30
>>172
ポインタがNULLじゃないから表示されたんだろう。
なんにしても、FILEの中身は見ちゃダメ。
176:デフォルトの名無しさん
08/02/17 03:14:08
>>172
恐らくは、_tmpfnameは使われていないときはNULLに設定されているのだろう。
どういうときに使われるのかはコンパイラの制作者に聞いてくれ。
>>174
自作のプログラムをコンパイルしているのだとしたら、極シンプルなものをコンパイルしてみたまえ。
それでもそのエラーが出るなら環境の問題、そうでないなら自作のプログラム側の問題。
177:デフォルトの名無しさん
08/02/17 03:16:48
なんで見ちゃダメなんですかぁ(><)
見るなと言われると余計見たくなるんですが
178:デフォルトの名無しさん
08/02/17 03:27:17
えっち♥
179:デフォルトの名無しさん
08/02/17 03:33:57
>>176
自作のプログラムの問題のようです。
\wp64オプションを外してリビルドしてみましたが、やはり発生します。
180:デフォルトの名無しさん
08/02/17 03:36:34
別に見るのは問題ない。
でも、FILE構造体の中身を直接使うようなコードを書くのは行儀が悪い。
FILEを使う標準関数のソースと合わせて、
いかに実装を知らせずにやり取りさせるかの一例として眺めるのには使えるかもしれない。
181:デフォルトの名無しさん
08/02/17 03:45:12
書き換えてるわけじゃなくてprintfで出力するのもまずいんですか?
182:デフォルトの名無しさん
08/02/17 03:52:22
別にまずくない。
どういう動作をしているか、どういう構造をしているのか見たいと思うのは自然なことだ。
でも、全てのFILEの実装が同じである保証はないから、
普通にプログラムを書く分にはFILEがどう定義されているかに依存する書き方をしない方が
後々問題を起こしにくいということ。
183:デフォルトの名無しさん
08/02/17 03:52:58
>>179
バックアップに更新ファイルだけペーストして取り繕ってみたら発生しなくなりました。
原因はわからないけど解決はできたのでまたコーディング作業に戻ります。
184:デフォルトの名無しさん
08/02/17 06:55:51
#define __NANASHI WAROSU
と定義したとして、_NANASHIを表示させたい場合どうすればいいんでしょうか?
printf("_NANASHI");だとそのまま_NANASHIが出力されちゃうんです。
185:デフォルトの名無しさん
08/02/17 07:06:00
>>184
printf("%d",_NANASHI);かな?
defineの内容によっちゃ%sになるかも知れんが・・・
186:デフォルトの名無しさん
08/02/17 10:22:59
>>182
たまに中身が変わったりしてコンパイルできなくなったり動かなくなったりするしな。
187:158
08/02/17 11:22:00
>158おながいします。
188:デフォルトの名無しさん
08/02/17 11:58:37
VB2005と2008Expressって結構違う所あるかな?
189:デフォルトの名無しさん
08/02/17 12:11:42
なんでググらないのかな、このクズは
190:デフォルトの名無しさん
08/02/17 12:12:30
>>189
ググったよ。ググったからここに来たんだよ
191:デフォルトの名無しさん
08/02/17 12:25:24
それで分からないのなら脳に何か障害がある可能性が高い。
まずは病院。
192:デフォルトの名無しさん
08/02/17 12:42:54
違いがよくわからければ、とりあえず最新の2008を使っておけばいいよ。
193:デフォルトの名無しさん
08/02/17 14:19:04
>>192
そっか。ありがとう。
194:デフォルトの名無しさん
08/02/17 17:12:32
昔fgets使うよりfgetc使って書いた方がいいとか聞いた記憶があるんですが、今もそうなんですか?
195:デフォルトの名無しさん
08/02/17 17:16:03
>>194
目的に応じて使い分け
どっちでもいいよ
ただしgetsは使うな
196:デフォルトの名無しさん
08/02/17 17:29:22
タブは\tで、改行は\nなんですが、スペースってどう表現すればいいですか?
197:デフォルトの名無しさん
08/02/17 17:31:03
どの環境の話?
普通にスペースじゃだめなのか
198:196
08/02/17 17:45:08
UNIXではどうなのかと、Winではどうなのか知りたいです。
スペースそのままでもいいんですけど、もうちょっとスマートな書き方ないかなと思って。
199:デフォルトの名無しさん
08/02/17 17:52:02
>>198
ごめん意味がわからない
OSはそんなこと気にしないからプログラムの問題じゃないの?
エスケープなしがいちばんスマートだと思うが
200:デフォルトの名無しさん
08/02/17 17:57:12
>>198
UnixでもWindowsでも、スペースはASCIIで0x20の' '。
201:デフォルトの名無しさん
08/02/17 18:20:57
スペースはスペースをそのまま書けばいい。
それが一番スマートだ。
ASCII コード限定なら
\x20 とか \032 とか書けはするが、
むしろ分かりにくくなるし、移植性が低い。
202:196
08/02/17 18:24:20
>>199-200
わかりました。ありがとうございました。
203:デフォルトの名無しさん
08/02/17 19:58:24
標準関数の戻り値で、charをわざわざintにキャストして返してくるものが結構あるんですけど、どんな理由でそうなってんですか?
204:デフォルトの名無しさん
08/02/17 20:02:28
アセンブラを勉強して関数から値を戻してみるといい
205:デフォルトの名無しさん
08/02/17 20:03:19
Cでは普通intより小さい数はintになることになってるから。
sizeof('a') はいくつでしょう?
206:デフォルトの名無しさん
08/02/17 20:20:00
わざわざキャストしてあるって、実装を見たのか?
207:デフォルトの名無しさん
08/02/17 20:21:11
>>203
レガシーなCではintより小さい型を返すことが(事実上)できなかったから。
208:デフォルトの名無しさん
08/02/17 20:23:08
そもそも char から int へのキャストって
普通はコンパイラのオプションに依存するわけで、
そんな危ない実装してることはないと思うぜ。
signed か unsigned を明示してるはず。
209:デフォルトの名無しさん
08/02/17 20:40:53
いやいや。
while ( (c=fgetc(fin)) != EOF)
charだとバイナリでこんな使い方ができないのでは
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5374日前に更新/131 KB
担当:undef