X



C言語なら俺に聞け 162
0643デフォルトの名無しさん (ワッチョイ 0bd0-FDlJ)
垢版 |
2024/03/19(火) 19:07:27.75ID:qnPpFeXM0
最短経路問題をCudaで解くのはむずくね?
0646デフォルトの名無しさん (スフッ Sdb2-W6Ep)
垢版 |
2024/03/24(日) 18:06:00.35ID:UMIIXnOjd
構造体変数の宣言の初期化のとき、ヌルポインタを,{ }でくくらないと、警告が出るのですが、なぜですか? 例えばこんな具合にしないと警告が出ます

struct monster {
char name[80];
int HP, MP;
};

int main(void)
{
struct monster template = {{0}, 7, 4};
0648デフォルトの名無しさん (スフッ Sdb2-rfcW)
垢版 |
2024/03/24(日) 18:24:20.57ID:UMIIXnOjd
>>647 よくわかりました ありがとうございます
0651デフォルトの名無しさん (スフッ Sdb2-rfcW)
垢版 |
2024/03/24(日) 18:47:29.73ID:UMIIXnOjd
我ながら Lolです☺
0652デフォルトの名無しさん (ワッチョイ 09f0-d20A)
垢版 |
2024/03/24(日) 18:57:40.29ID:9Ye9tMrz0
>>621
Perlでメモリ不足になるってことは循環参照が発生してメモリが解放されない(PerlはリファレンスカウントGC)
もしくは深い再帰でPerl管理のVMスタックが枯渇したか
どちらにしろCで書いてもメモリをバカ食いするのは間違いないから
データ構造を見直すべき
循環参照を見直す、再帰をループに変えるなどを試してみてはどうか
0655デフォルトの名無しさん (ワッチョイ 6fb3-MjEX)
垢版 |
2024/04/11(木) 18:10:49.56ID:h5i5y7Gi0
#include <stdio.h>
#include <string.h>

void main(void)
{
 char c[32];
 char *pc;

 strcpy(c, "JAPAN-TOKYO-OSAKA");
 pc = &c[0];

 //for(int i=0; i<strlen(c); i++, *pc++){
 for(int i=0; i<strlen(c); i++, pc++){
  printf("%c", *pc);
 }
 printf("\n");
}
0656デフォルトの名無しさん (ワッチョイ 6fb3-MjEX)
垢版 |
2024/04/11(木) 18:12:37.98ID:h5i5y7Gi0
コメントアウトしてる方のforにしても出力結果は同じになります
*付きポインタ変数は、中身へアクセスを意味するからめちゃくちゃな文字列が出力されるはずじゃ・・・?

どうしてなの?
0660デフォルトの名無しさん (ワッチョイ 4ef0-WBP1)
垢版 |
2024/04/11(木) 20:25:30.86ID:RdqITFFi0
*も++も単項演算子で適用される優先順位がある
優先順位を意識してコーディングしないと痛い目に合う
a + b == cは想定通りだろうが、a & b == cは想定外の結果になるとかねw
0662デフォルトの名無しさん (ワッチョイ 6f2a-MjEX)
垢版 |
2024/04/11(木) 21:46:39.46ID:6HtedQOj0
>>661
え、なぜ。
0669デフォルトの名無しさん (ワッチョイ df01-B3tP)
垢版 |
2024/04/12(金) 00:21:54.57ID:GtdzNQir0
>>655
後に現れたC++のiostreamがシフト演算子をオーバーロードし入出力演算子として流用するのに
好都合で、思わぬ役に立つことになったからまあ良いだろ。もしシフト演算子が四則演算子より
優先順位が高かったら、cout << 1 + 2 * 3 << endl を cout << (1 + 2 * 3) << endl と
書かなければならず面倒だった。(C++がシフト演算子を全く別の機能に流用したのは不適切
だったという意見もあるが…)
0671デフォルトの名無しさん (ワッチョイ e2ad-lyNC)
垢版 |
2024/04/12(金) 02:09:51.24ID:Wv2Zy+UZ0
>>656
*pc++ はまず *pc の処理をする。これで pc の差している先にある値を取り出すことになる。その次に pc を一つ分進ませる(実際に加算される値は sizeof(*pc))。
では最初に *pc で取り出した値はどこへ行ってしまうのか? それは何にも使われずにただ捨てられる。
0672デフォルトの名無しさん (ワッチョイ 4e28-Nnmc)
垢版 |
2024/04/12(金) 07:08:32.50ID:gi41fiD00
*pc++の形はcやってたら所々で見るから否応なく慣れる
個人的にはケチくさい書き方で避けたい気持ちもあるがまぁそういう文化が根付いてるなら合わせざるを得ない
0674デフォルトの名無しさん (スッップ Sd02-3rFQ)
垢版 |
2024/04/12(金) 12:25:07.52ID:OadUyd3Md
C言語の標準化委員はC++のほうも兼任してたりするから、ぶっちゃけC言語の改善にはやる気無しだから。
0676デフォルトの名無しさん (ワッチョイ 4ef0-WBP1)
垢版 |
2024/04/12(金) 14:41:57.50ID:nGLEgXOo0
C++はRustと比較されて安全性に劣るとレッテルを貼られて、どうしたもんか考えあぐねてるところだろうw
言語の拡張に対して完全に方向転換を強いられてるのは間違いない
それはCも一緒だな
0678デフォルトの名無しさん (スフッ Sd02-L5r3)
垢版 |
2024/04/12(金) 15:20:27.37ID:dUdcEEpod
>>674
もはやbetter Cでも何でもないのに、このスレでも繰り返しc++の話題出す奴居るし、やっぱユーザーも被ってるんだろな

まあCの設計の良否を他言語よりは比較的小さな差異から論じるのに有用だとは思う
おれみたいにC++は書かずともcpprefとか読んで式や文、宣言など局所的な構文知識だけちょっとある人は多かろう(ClassとかCに無い概念は読み飛ばしてて無知)

生まれた順序が逆だけど、FortranがC++とすればF言語/JuliaがCだね
大体サブセット+独自進化、標準化コミュニティ丸被り
0679デフォルトの名無しさん (スッップ Sd02-3rFQ)
垢版 |
2024/04/12(金) 16:33:17.52ID:OadUyd3Md
C++は好きじゃないからC言語はもっと改善していって欲しい。
nullptr型とか入るの遅すぎじゃね?
0680デフォルトの名無しさん (ワッチョイ 62e3-WBP1)
垢版 |
2024/04/12(金) 22:48:41.07ID:fQv3jEzD0
C++はCの機能を保ったまま、ありとあらゆるプログラミングパラダイムを突っ込んだもの
それがベターかどうかは人によるな
ただ、Cと互換性を保ったままそこまで進化したのは奇跡に近い
0682デフォルトの名無しさん (ワッチョイ 62e3-WBP1)
垢版 |
2024/04/13(土) 00:06:24.07ID:c7UXCLXT0
でも、Rustが安全性と性能は両立出来ることを証明してしまってから、一気に旗色が悪くなったw
今まで性能を免罪符にして、多少(かなり?)の安全性を犠牲にしてきたけど、もはや通用しない時代になった
今後どう進化するか見物だな
Cだって対岸の火事ではない
0683デフォルトの名無しさん (ワッチョイ 62e3-WBP1)
垢版 |
2024/04/13(土) 01:23:26.45ID:c7UXCLXT0
ちなみに、Rustは安全な代わりに書きたいコードを書けるとは思わない方がいいw
これは書いてみないと分からん感覚だ
書きやすくて安全な言語は存在しないことも証明されたw
0684デフォルトの名無しさん (ワッチョイ e2ad-ZiZa)
垢版 |
2024/04/13(土) 07:18:38.29ID:SxW/5mRR0
慣れの問題では?
0686デフォルトの名無しさん (ワッチョイ 9f79-Zl9R)
垢版 |
2024/04/19(金) 20:19:37.90ID:5JxGOdzk0
今日から戯れに数十年前のx86なGUIのソースをx64に移植し始めたんだが
とりあえずエラーになるGetWindowsLongだかをx64用に書き換えていったらそこそこ動いてしまって、後は文字列が関係する処理だけだ
俺が書いた過去のコードがよっぽど優秀だったようだ
やはり若い頃にソースを沢山書いといてよかった
0687デフォルトの名無しさん (ワッチョイ 9f79-Zl9R)
垢版 |
2024/04/19(金) 20:37:53.24ID:5JxGOdzk0
x64化でちょっとsize_tの扱いで躓いたので書いておこう
ポインタが64bitだから、その差を取る場合もあるsize_tも64bitなのは理屈では理解できるんだが
明らかに64bit幅が不要な箇所でsize_tに出くわすとおいおいと思ってしまう
これはbit数を明示した型を別に定義した方がよさそうだ
ああまいったまいった
0688デフォルトの名無しさん (ワッチョイ 9f1c-A/o5)
垢版 |
2024/04/19(金) 23:35:27.85ID:uO847wzt0
>>686
Windows1.0のexeもWindows10(32bit版)でも動くからな
64bit版は16bitコードの実行が廃止されたから無理
APIの方は割と変わってるけど、それでもちょっと直せばビルドできる
優秀なのはMicrosoftの方だなw
0691デフォルトの名無しさん (スフッ Sd70-mNzP)
垢版 |
2024/04/21(日) 10:58:55.51ID:WM7IEXRid
win10使ってるけどOffice 97をバイナリコピーして使ってるぞ、とうとう11では動かんのか…?
主にExcel使うが関数の数は劣ってもヘルプは古い方がよく出来てて一般ユーザとしては好み、一々ブラウザ起動されてたらい回しは嫌だ
0693デフォルトの名無しさん (ワッチョイ 66ad-6Ywt)
垢版 |
2024/04/21(日) 13:02:16.05ID:kDNr1IJ/0
Office97は32bitだから動くでしょ
駄目なのはWindows3.1までの16bitアプリ

じぶんもフリーソフトをいくつか64bit化したけどほとんど修正してない
早めにUnicodeにしてたおかげもあるかな
0695デフォルトの名無しさん (ワッチョイ 8732-Q9m/)
垢版 |
2024/04/29(月) 17:53:08.72ID:Mi5d5RVO0
あえて使う人もあんまりいないだろうけど、メンテナンスが止まってる(32bit 化、64bit 化されない)ようなソフトを使いたいってことはそれなりにあることじゃないの。
メーカーがつぶれて消えたりするのもよくあることだしな。
0696名無し兎と鰻の大乱闘 (ワッチョイ dffd-02Vv)
垢版 |
2024/04/29(月) 19:42:16.62ID:Yc7GJpMD0
そもそもしーげんごってなに?
0699デフォルトの名無しさん (ワッチョイ dfad-b946)
垢版 |
2024/04/29(月) 22:45:20.14ID:c1TFMEcy0
知り合いにエミュレータ入れたりして凄く苦労してロータス123を動かして業務で使っている人が居る。
0700デフォルトの名無しさん (ワッチョイ 8732-nVjz)
垢版 |
2024/04/30(火) 00:46:15.48ID:b4FWQSR70
使うのに手間はあるとはいえエミュレータが成熟してしまったので
かなり古いソフトウェアを動かしたいならそっちでやれと言えてしまうようになったとも言える。
Windows の互換性維持システムも結局はエミュレータをサブシステムとして
組み込んでるようなもんだしな。
0702デフォルトの名無しさん (ワッチョイ df79-V7Lt)
垢版 |
2024/04/30(火) 19:37:21.97ID:6siWZQQV0
なんで16bitの話になったのか理解不能
0703デフォルトの名無しさん (ワッチョイ dfad-b946)
垢版 |
2024/05/01(水) 16:53:57.29ID:udfiR5VM0
>>686の辺りから?
0705デフォルトの名無しさん (ワッチョイ df79-V7Lt)
垢版 |
2024/05/02(木) 23:28:34.67ID:gN+cVuNV0
CでCOMやれって言われても困るし
逆にC++のがマシってのはその程度か
0706デフォルトの名無しさん (ワッチョイ 5ff4-NzXl)
垢版 |
2024/05/03(金) 11:04:22.77ID:RJtMknPi0
cでもできるってのと、c++使ったほうが楽ってのでは全然意味違う
チームで混乱を招くという理由以外でのc++ディスりは、大抵理解不足によるアレルギーから来るヒスのことが多い
まあ、そういうヒス起こす人が多いからチームでは使用禁止とかになっちゃうわけだから、り繋がってはいるんだけど
0715デフォルトの名無しさん (ワッチョイ dfac-R43V)
垢版 |
2024/05/04(土) 01:40:48.74ID:nSEmjq+y0
メモリ構成が非常に小さいシステムの場合Cじゃない?
8bitのPICとか
0716デフォルトの名無しさん (ワッチョイ ff2d-y8PE)
垢版 |
2024/05/04(土) 17:05:29.45ID:VOfnZKej0
こういうの考えたんだけどどうだろう?
実用性無いだろうか

#include <stdio.h>

typedef void (*exception_handler)(void);

void register_exception_handler(exception_handler handler)
{
handler();
}

void exception_occurred()
{
printf("例外が発生しました。\n");
}

void may_throw_exception(int condition)
{
if (condition) {
register_exception_handler(exception_occurred);
}
}

int main()
{
may_throw_exception(1);

return 0;
}
0721はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8f32-uq6a)
垢版 |
2024/05/05(日) 00:00:07.41ID:NN+M7fak0
>>716
「こういうの」とは何であるか説明が必要。
提示されたコードは関数 exception_occurred の呼び出しを回りくどくやっているだけで、
途中のメカニズムに意味がない。
(このコードでの使い方の範囲では。)

言葉で説明しづらいならこれが有用になるような使い方の例を示して欲しい。
0723はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8f32-uq6a)
垢版 |
2024/05/05(日) 00:22:13.83ID:yEjzRI9b0
>>722
C の言語仕様の範囲内でやる方法は setjmp/longjmp のみ。
setjmp/longjmp を自分で書きたいってことなら
アセンブラ (またはインラインアセンブラや intrinsic 関数) を使って
スタックポインタ操作したりレジスタの待避・復旧などをやる必要があるが……。

モダンな処理系だと最適化だのなんだのの都合でスタックフレームを省略したりだとかもあるので
それらと協調しないとまともに動作しない。
たとえば gcc だと setjmp/longjmp の実体は
組み込み関数の __builtin_setjmp/__builtin_longjmp として提供されてる。
処理系自体の機能として持たないとちゃんと動作させられんのだ……。
0728デフォルトの名無しさん (ワッチョイ 312a-qYA6)
垢版 |
2024/05/14(火) 10:22:08.21ID:qHkm4M1L0
strfry(): スターふりゃー
0732 警備員[Lv.6][新初] (ワッチョイ 7b5f-7UPu)
垢版 |
2024/05/15(水) 21:51:01.03ID:QNLWEWL40
>>731
英語はラテン語系じゃないから、最後にaの発音は付けないよ?
0733デフォルトの名無しさん (ワッチョイ bd2a-QxKS)
垢版 |
2024/05/15(水) 22:53:44.49ID:eM13T72T0
>>732
敢えて「らりるれろ」で表現すると、どれに近いの。
0741デフォルトの名無しさん (スフッ Sd2f-aIi2)
垢版 |
2024/05/16(木) 17:18:21.50ID:YR1de7Utd
🤣🤣🤣
0743デフォルトの名無しさん (スフッ Sd2f-aIi2)
垢版 |
2024/05/16(木) 17:36:45.28ID:YR1de7Utd
ストゥーディオってよんでる
0744デフォルトの名無しさん (ワッチョイ 5f79-nHLb)
垢版 |
2024/05/16(木) 19:31:00.84ID:s6fDlAb80
「そのすたーちゃー(strchr)使うのやめろよ言うまでもなくすたーあーちゃー(strrchr)もな」って言うかも
今更C言語の話なんてしないけどストラ云々なんていっても伝わらんのは判ってる
0752デフォルトの名無しさん (ワッチョイ 77f9-RO6I)
垢版 |
2024/05/17(金) 07:01:02.01ID:FuakfFss0
>フラップT は、 t が前後を母音に挟まれており、かつ、t を含む音節にアクセントが置かれていない場合に起こります。

全然ちゃうやんw
母音に挟まれてないしアクセントはターにあるだろ
0756デフォルトの名無しさん (ワッチョイ 77f9-RO6I)
垢版 |
2024/05/17(金) 15:11:05.80ID:FuakfFss0
英語を自分ルール作って勝手に読んでる奴は暗黙の合意をわかる能力が低いということ
これはコンピュータ言語でも同じだ
自分で標準ライブラリ作り直すくらいの覚悟ならいいが中途半端に自分流突き通す奴は上達しない
0758デフォルトの名無しさん (ワッチョイ e3ad-739I)
垢版 |
2024/05/18(土) 06:19:27.02ID:s0SjtLL90
r の発音が難しい。
0759デフォルトの名無しさん (ワッチョイ 452a-qYA6)
垢版 |
2024/05/18(土) 08:21:14.75ID:R6I0+Baq0
r の発音が難しいのであーる
と語尾を整えて欲しかった。
0760デフォルトの名無しさん (オッペケ Sr6f-9tvc)
垢版 |
2024/05/18(土) 10:16:08.61ID:+7oj04xGr
Lit it GO❢ レリッゴ〜ゥゥ
レスを投稿する


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