C言語なら俺に聞け 147

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
垢版 |
2018/08/16(木) 23:36:02.22ID:fOCSKLtw
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/


C言語なら俺に聞け 146
https://mevius.5ch.net/test/read.cgi/tech/1525031257/
893デフォルトの名無しさん
垢版 |
2018/09/10(月) 21:19:36.92ID:XzQQxj6r
>>883 ← ムクな初心者
>>885 ← 低学歴知恵遅れ ID:WGo2tHWR 「そうそう。そういうこと。」 ← コレのコトだ

低学歴知恵遅れはレスもおえないの?
2018/09/10(月) 21:21:51.21ID:XxqHEWUO
あれ?
int *a;
int b=0;
a=&b;
printf("%p",a);
って別に正しくね?
895デフォルトの名無しさん
垢版 |
2018/09/10(月) 21:22:53.59ID:XzQQxj6r
https://ideone.com/bsjclG

この処理結果みても分からないなら
オツムに相当な問題がある
2018/09/10(月) 21:25:52.44ID:XxqHEWUO
ううむ、俺にはaは64ビット環境だと64ビット長に見えるのだが違うのか?
897デフォルトの名無しさん
垢版 |
2018/09/10(月) 21:27:36.20ID:XzQQxj6r
で、処理結果みた?
で、処理結果みた?
で、処理結果みた?
2018/09/10(月) 21:29:43.88ID:XxqHEWUO
おたくのサンプルは64ビットアドレスをintにキャストしちゃてるやん。そりゃ実行結果違うわ。
899デフォルトの名無しさん
垢版 |
2018/09/10(月) 21:31:35.87ID:XzQQxj6r
https://ideone.com/PGwK6j
キャストはずしたったぞ
当然、結果はかわらない

やっぱりなこの板は低学歴知恵遅れしかいない
この程度のこともわからずにいきってレスしてるワケだからな
2018/09/10(月) 21:31:51.59ID:6MAzJtEj
たまたま 足りない分 0 を引っ張ってきてるけど(レジスタで渡ったから?)
スタックに積んでるリターンアドレスの一部から足りないのを補ってると、もっとわけわかな数値に
未定儀の挙動を推測すすのもまたオツなもの か
2018/09/10(月) 21:32:51.39ID:XxqHEWUO
いやいや、883のaはポインタなんだってw
なんでintに入れちゃうのw
902デフォルトの名無しさん
垢版 |
2018/09/10(月) 21:33:36.29ID:XzQQxj6r
そんなことオレのしったことじゃないからな

 >>883 ← ムクな初心者
 >>885 ← 低学歴知恵遅れ ID:WGo2tHWR 「そうそう。そういうこと。」 ← コレのコトだ

低学歴知恵遅れはレスもおえないの?
2018/09/10(月) 21:40:38.56ID:lZ/O7dtJ
半角クンていつも周りを見ずに自分の思い込みだけでレスしちゃって誤り訂正できないから、恥ずかしい(*/□\*)

直進しかできない目隠しされたイノシシみたい
904デフォルトの名無しさん
垢版 |
2018/09/10(月) 21:42:09.42ID:XzQQxj6r
なにが間違いなわけ
指摘してみ

一切間違ったこと書いてないからな
低学歴知恵遅れはそもそも認知能力に問題がある
2018/09/10(月) 21:47:36.63ID:XxqHEWUO
なぜ64ビットポインタをintに入れたの?
883ではそんなこと一切してないんだけど。

逆に
>printf() に a の内容である 0 を渡している
は整数リテラルがintなのに%pで受けてるので、64ビット環境なら4バイト分スタックのゴミを拾ってきそうだけど。
906デフォルトの名無しさん
垢版 |
2018/09/10(月) 21:48:46.40ID:XzQQxj6r
はずかしくなって
こっち側にこようとしても
もう手遅れだからな
2018/09/10(月) 21:50:57.43ID:XxqHEWUO
なんだ、結局はaがポインタだってことを見逃しただけかよw
2018/09/10(月) 21:55:18.07ID:cYYSBBs1
>>906
つ鏡
909デフォルトの名無しさん
垢版 |
2018/09/11(火) 00:11:24.08ID:X6CualfE
>>887
>>883はちゃんと動くよ。
2018/09/11(火) 06:35:01.60ID:pvBPsgEg
>>909
半角野郎が数行のプログラムも理解できないくせに自分で改竄したコードが動かねぇって騒いでただけ。
半角野郎こそ低学歴知恵遅れクルクルパーで認知能力とオツムに相当な問題があるってことが証明されただけなので気にするな。
本人は顔真っ赤にして逃げたみたいだけど。
2018/09/11(火) 07:57:47.34ID:2zsIBj+S
ポインタを受け取るべき%p変換指定子に、ポインタでない値を与えることの
危険性は >>882 ですでに指摘されてるのに、後乗りで書いた >>887
こんだけ引っ張れるのは、ある意味で才能かもな。

汚い言葉遣いを我慢しながら拝聴するほど啓蒙的な内容でもないし。
2018/09/11(火) 08:11:06.15ID:NBDkJ3+C
>>911
半角クンのレスは、5%の真実と15%の間違い・思い込みと80%の繰り言・罵詈雑言でできてるからね。まっとうに読む価値はない。
2018/09/11(火) 09:54:24.68ID:oX9GyHv1
まれにいいこと言う
850とか
2018/09/11(火) 10:00:02.68ID:R1B4IsqD
釣り針が大きすぎて、クジラじゃないと釣れない
2018/09/11(火) 11:44:57.89ID:zLtJmO+E
musl-libcのiconvコマンドの本体ってここを見ればいいよね?
https://git.musl-libc.org/cgit/musl/tree/src/locale/iconv.c
916デフォルトの名無しさん
垢版 |
2018/09/11(火) 20:05:08.62ID:YMBQMGAL
処理系って何?
cpuかコンパイラの事かなと思ってるんだけど。
間違ってる?
2018/09/11(火) 20:29:34.46ID:5X7KAgIC
処理系は、翻訳環境と、実行環境に大別される
翻訳環境とはコンパイラ等開発ツールを実行する環境
実行環境とはコンパイル結果のバイナリが稼働する環境、客先と言ってもよい
918デフォルトの名無しさん
垢版 |
2018/09/11(火) 20:36:50.64ID:YMBQMGAL
>>917
バイナリが稼働する環境はcpuってことかな
どうもお世話になりました
2018/09/11(火) 20:45:37.73ID:5X7KAgIC
cpuだけじゃないメモリが実装されているアドレス
i/oが実装されているアドレス
osの挙動
など様々な要因が絡む
2018/09/11(火) 21:01:49.97ID:LZbcaZ/B
CPUが同じであっても、
Windowsでは動かせてもmacOSでは動かないとか
同じWindowsでも、64bit環境では動いても32bit環境だと動かないとか
2018/09/11(火) 21:12:52.13ID:ShO/owiX
半角くん、いたの?
lynx で見てるから何言ってるかわからない。
2018/09/11(火) 21:17:38.28ID:pVzZZpUQ
ゴミPC早く捨てろ
2018/09/11(火) 21:28:47.48ID:zLtJmO+E
処理系ってC99に関してはJISで定義されてたよね。
2018/09/13(木) 21:21:47.72ID:1sKEH3Wo
昔の教科書には
C言語の原稿
↓プリプロセッサ
マクロ・ヘッダファイルが展開された原稿
↓翻訳機
アセンブリ言語の原稿
↓アセンブラ
機械語
↓リンカ
実行可能ファイル

っていう図がよく描かれてて,今でもWebを検索するとよく見掛けるんだけど,ほんとに今現在のコンパイラってこういうことやってんの?
gccやclangって,もはやC言語の原稿からほぼほぼ直接に実行可能ファイルを生成してるんじゃない?
さすがにプリプロセッサくらいはあるかもしれんが。
2018/09/13(木) 21:32:27.37ID:CY4XgXEU
-vつけて起動してみ。
プリプロcppはcc1に統合された。
gccだと、cc1とかasとかcollect2とかが動いてるはず。
clangはデフォルトだとasなしかも。
2018/09/13(木) 21:54:33.53ID:1sKEH3Wo
>>925
あざす
やっぱり減ってはいるんだな。
結構ああいう図を見掛けるんで,なんか(ほんとにこんな段階踏んでんのか?)ってモヤモヤしてた。
素人考えだが,あんな風に幾つも重ねてビルドしてたら最適化しにくい気がするし。
2018/09/13(木) 22:33:23.35ID:brIJUf4C
処理としてはわかれてるよそりゃ
2018/09/13(木) 23:18:13.03ID:1sKEH3Wo
え そうなん
と思って空のファイルをgcc -vで処理したら
たしかにある程度進んでリンカの段階で エラーになったわ。
929デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:28:49.69ID:yqnwLH2V
bash-4.3$ gcc -v -o aho aho.c ←開始
/usr/lib/gcc/i586-slackware-linux/5.3.0/specs から spec を読み込んでいます
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i586-slackware-linux/5.3.0/lto-wrapper
ターゲット: i586-slackware-linux
configure 設定: ../gcc-5.3.0/configure --prefix=/usr --libdir=/usr/lib --mandir
=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap --enable-langu
ages=ada,c,c++,fortran,go,java,lto,objc --enable-threads=posix --enable-checkin
g=release --enable-objc-gc --with-system-zlib --with-python-dir=/lib/python2.7/
site-packages --enable-libstdcxx-dual-abi --with-default-libstdcxx-abi=gcc4-com
patible --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --
enable-lto --disable-install-libiberty --with-gnu-ld --verbose --enable-java-ho
me --with-java-home=/usr/lib/jvm/jre --with-jvm-root-dir=/usr/lib/jvm --with-jv
m-jar-dir=/usr/lib/jvm/jvm-exports --with-arch-directory=i386 --with-antlr-jar=
/root/slackware-current/source/d/gcc/antlr-runtime-3.4.jar --enable-java-awt=gt
k --disable-gtktest --with-arch=i586 --target=i586-slackware-linux --build=i586
-slackware-linux --host=i586-slackware-linux
スレッドモデル: posix
gcc バージョン 5.3.0 (GCC)
(-続く-)
930デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:29:23.47ID:yqnwLH2V
(-続き-)
COLLECT_GCC_OPTIONS='-v' '-o' 'aho' '-mtune=pentium' '-march=i586'
/usr/libexec/gcc/i586-slackware-linux/5.3.0/cc1 -quiet -v aho.c -quiet -dumpba
se aho.c -mtune=pentium -march=i586 -auxbase aho -version -o /tmp/ccVi37md.s ← @プリプロセス
GNU C11 (GCC) version 5.3.0 (i586-slackware-linux)
compiled by GNU C version 5.3.0, GMP version 6.1.0, MPFR version 3.1.4, MPC
version 1.0.3
warning: GMP header version 6.1.0 differs from library version 6.1.2.
GGC heuristics: --param ggc-min-expand=63 --param ggc-min-heapsize=62246
存在しないディレクトリ "/usr/lib/gcc/i586-slackware-linux/5.3.0/../../../../i58
6-slackware-linux/include" を無視します
#include "..." の探索はここから始まります:
#include <...> の探索はここから始まります:
/usr/lib/gcc/i586-slackware-linux/5.3.0/include
/usr/local/include
/usr/lib/gcc/i586-slackware-linux/5.3.0/include-fixed
/usr/include
探索リストの終わりです。
(-続く-)
931デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:30:05.16ID:yqnwLH2V
(-続き-)
GNU C11 (GCC) version 5.3.0 (i586-slackware-linux) ← Aコンパイル
compiled by GNU C version 5.3.0, GMP version 6.1.0, MPFR version 3.1.4, MPC
version 1.0.3
MPC version 1.0.3
warning: GMP header version 6.1.0 differs from library version 6.1.2.
GGC heuristics: --param ggc-min-expand=63 --param ggc-min-heapsize=62246
Compiler executable checksum: c5a3ffed702d1cd048214b2b66d4a98a
(-続く-)
932デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:30:29.37ID:yqnwLH2V
(-続き-)
COLLECT_GCC_OPTIONS='-v' '-o' 'aho' '-mtune=pentium' '-march=i586'
/usr/lib/gcc/i586-slackware-linux/5.3.0/../../../../i586-slackware-linux/bin/a
s -v --32 -o /tmp/ccMFr9O6.o /tmp/ccVi37md.s ← Bアセンブル
GNU アセンブラ バージョン 2.26 (i586-slackware-linux)、BFD バージョン version 2
.26.20160125 を使用
(-続く-)
933デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:31:04.04ID:yqnwLH2V
(-続き-)
COMPILER_PATH=/usr/libexec/gcc/i586-slackware-linux/5.3.0/:/usr/libexec/gcc/i58
6-slackware-linux/5.3.0/:/usr/libexec/gcc/i586-slackware-linux/:/usr/lib/gcc/i5
86-slackware-linux/5.3.0/:/usr/lib/gcc/i586-slackware-linux/:/usr/lib/gcc/i586-
slackware-linux/5.3.0/../../../../i586-slackware-linux/bin/
LIBRARY_PATH=/usr/lib/gcc/i586-slackware-linux/5.3.0/:/usr/lib/gcc/i586-slackwa
re-linux/5.3.0/../../../../i586-slackware-linux/lib/:/usr/lib/gcc/i586-slackwar
e-linux/5.3.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'aho' '-mtune=pentium' '-march=i586'
/usr/libexec/gcc/i586-slackware-linux/5.3.0/collect2 -plugin /usr/libexec/gcc/
i586-slackware-linux/5.3.0/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/i586-s
lackware-linux/5.3.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccGuF6mf.res -pl
ugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pas
s-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s
--eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o aho /usr/lib/
gcc/i586-slackware-linux/5.3.0/../../../crt1.o /usr/lib/gcc/i586-slackware-linu
x/5.3.0/../../../crti.o /usr/lib/gcc/i586-slackware-linux/5.3.0/crtbegin.o -L/u
sr/lib/gcc/i586-slackware-linux/5.3.0 -L/usr/lib/gcc/i586-slackware-linux/5.3.0
/../../../../i586-slackware-linux/lib -L/usr/lib/gcc/i586-slackware-linux/5.3.0
/../../.. /tmp/ccMFr9O6.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --
as-needed -lgcc_s --no-as-needed /usr/lib/gcc/i586-slackware-linux/5.3.0/crtend
.o /usr/lib/gcc/i586-slackware-linux/5.3.0/../../../crtn.o ← Cリンク
934デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:34:54.24ID:yqnwLH2V
普通に別々のモジュールで独立して処理されてる

@プリプロセス /usr/libexec/gcc/i586-slackware-linux/5.3.0/cc1
Aコンパイル /usr/bin/gcc
Bアセンブル /usr/lib/gcc/i586-slackware-linux/5.3.0/../../../../i586-slackware-linux/bin/as
Cリンク /usr/libexec/gcc/i586-slackware-linux/5.3.0/collect2
2018/09/14(金) 00:17:52.55ID:lqNqtREE
>>934
/usr/bib/gccはちげーだろ
936デフォルトの名無しさん
垢版 |
2018/09/14(金) 00:51:20.40ID:q3l06dS7
>>934
コンパイルは
/usr/lib/x86_64-linux-gnu/6/cc1
だな。俺の場合
937デフォルトの名無しさん
垢版 |
2018/09/14(金) 00:58:32.39ID:fXySkelb
bash-4.3$ gcc -v -E -o aho_.c aho.c ←開始
/usr/lib/gcc/i586-slackware-linux/5.3.0/specs から spec を読み込んでいます
COLLECT_GCC=gcc
ターゲット: i586-slackware-linux
configure 設定: ../gcc-5.3.0/configure --prefix=/usr --libdir=/usr/lib --mandir
=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap --enable-langu
ages=ada,c,c++,fortran,go,java,lto,objc --enable-threads=posix --enable-checkin
g=release --enable-objc-gc --with-system-zlib --with-python-dir=/lib/python2.7/
site-packages --enable-libstdcxx-dual-abi --with-default-libstdcxx-abi=gcc4-com
patible --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --
enable-lto --disable-install-libiberty --with-gnu-ld --verbose --enable-java-ho
me --with-java-home=/usr/lib/jvm/jre --with-jvm-root-dir=/usr/lib/jvm --with-jv
m-jar-dir=/usr/lib/jvm/jvm-exports --with-arch-directory=i386 --with-antlr-jar=
/root/slackware-current/source/d/gcc/antlr-runtime-3.4.jar --enable-java-awt=gt
k --disable-gtktest --with-arch=i586 --target=i586-slackware-linux --build=i586
-slackware-linux --host=i586-slackware-linux
スレッドモデル: posix
(-続く-)
938デフォルトの名無しさん
垢版 |
2018/09/14(金) 00:59:43.97ID:fXySkelb
(-続き-)
gcc バージョン 5.3.0 (GCC)
COLLECT_GCC_OPTIONS='-v' '-E' '-o' 'aho_.c' '-mtune=pentium' '-march=i586'
/usr/libexec/gcc/i586-slackware-linux/5.3.0/cc1 -E -quiet -v aho.c -o aho_.c -
mtune=pentium -march=i586
存在しないディレクトリ "/usr/lib/gcc/i586-slackware-linux/5.3.0/../../../../i58
6-slackware-linux/include" を無視します
#include "..." の探索はここから始まります:
#include <...> の探索はここから始まります:
/usr/lib/gcc/i586-slackware-linux/5.3.0/include
/usr/local/include
/usr/lib/gcc/i586-slackware-linux/5.3.0/include-fixed
/usr/include
探索リストの終わりです。
COMPILER_PATH=/usr/libexec/gcc/i586-slackware-linux/5.3.0/:/usr/libexec/gcc/i58
6-slackware-linux/5.3.0/:/usr/libexec/gcc/i586-slackware-linux/:/usr/lib/gcc/i5
86-slackware-linux/5.3.0/:/usr/lib/gcc/i586-slackware-linux/:/usr/lib/gcc/i586-
slackware-linux/5.3.0/../../../../i586-slackware-linux/bin/
LIBRARY_PATH=/usr/lib/gcc/i586-slackware-linux/5.3.0/:/usr/lib/gcc/i586-slackwa
re-linux/5.3.0/../../../../i586-slackware-linux/lib/:/usr/lib/gcc/i586-slackwar
e-linux/5.3.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-E' '-o' 'aho_.c' '-mtune=pentium' '-march=i586'

エラーなし
939デフォルトの名無しさん
垢版 |
2018/09/14(金) 01:02:16.51ID:fXySkelb
プリプロセス前
bash-4.3$ cat aho.c
#include <stdio.h>
#define ahobaka "あほばか"
#define AHOBAKA aho##baka
#define LIT(str) #str
#define PRINT(f,...) fprintf(stdout, f, __VA_ARGS__)
#define SHINE PRINT("%s%s\n", AHOBAKA, LIT(a"b"c))

int main(void) {
SHINE;
return 0;
}

プリプロセス後
bash-4.3$ cat aho_.c
(-略-)
# 8 "aho.c"
int main(void) {
fprintf(
# 9 "aho.c" 3 4
stdout
# 9 "aho.c"
, "%s%s\n", "あほばか", "a\"b\"c");
return 0;
}
2018/09/14(金) 04:27:04.26ID:q3l06dS7
pcc(1)とかで試すとわかりやすいとおもう。
2018/09/14(金) 05:58:00.88ID:3Ef1q6jY
コンパイラが(プリプロセス済みの)ソースを処理する際、
直接にはアセンブリのソースに持っていかず、いったん中間言語に変換。
その中間言語の段階でも最適化を行ってから
アセンブリに変換してアセンブル・リンク。
……みたいな手順になってると聞いたことがある。
中間言語段階の中間ファイルを出力させることができるか知らんけど。

プリプロセッサ、コンパイラ、アセンブラ、リンカよりも
内部的な手順はむしろ増えてるのかも。
2018/09/14(金) 07:13:28.65ID:RUHHwTRx
>>941
実行時コンパイラ
https://ja.wikipedia.org/wiki/%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9
943デフォルトの名無しさん
垢版 |
2018/09/14(金) 08:36:29.54ID:SYmkUqRw
JITとなんの関係が?
944デフォルトの名無しさん
垢版 |
2018/09/14(金) 08:49:57.91ID:q3l06dS7
>>941

>>924 の図に倣うなら

C言語の原稿
↓プリプロセッサ
マクロ・ヘッダファイルが展開された原稿
↓翻訳機1
中間言語(最適化済み)
↓翻訳機2
アセンブリ言語の原稿
↓アセンブラ
機械語
↓リンカ
実行可能ファイル

みたいなかんじかね。
945デフォルトの名無しさん
垢版 |
2018/09/14(金) 09:12:54.86ID:d02sSTx1
昔 LSIゲームってあったでしょ
ああいうゲームをCで書いてパソコンで遊びたいんだけど
技術的な情報が不足してんだ 特に画面を動かす方法
そういうのどこで手に入るか分かる人いる? 教えてくださいヽ(^o^)丿
2018/09/14(金) 09:49:18.88ID:1qfFvEAu
cursesライブラリを使う
947デフォルトの名無しさん
垢版 |
2018/09/14(金) 10:39:42.96ID:i1kWv4b4
CでGUIまでやりたいということか?
うーん・・・
2018/09/14(金) 12:08:50.95ID:9XnUq3uB
>>945
エスケープシーケンスで検索

とりあえず NetHack みたいので遊んでみたら
2018/09/14(金) 12:34:30.19ID:3Ef1q6jY
>>945 の言うLSIゲームってのが、
ドットマトリクスの汎用液晶パネルを使ったゲームじゃなくて、
ゲーム&ウォッチみたいな専用にデザインされた液晶のゲームだと
ちょいと変わってくるかもな。

大筋は同じだけど、少数のデカキャラ表示を点けたり消したり。
2018/09/14(金) 12:48:17.13ID:9XnUq3uB
イメージ伝えるためにLSIゲームと言うならドットマトリックスというよりゲームウォッチ式じゃないかな。
ただその趣旨は、簡易な操作と表示のゲームなんじゃないかと。
キャラクタ端末ゲームを知ればそっちに倒れるんじゃないかな?
2018/09/14(金) 12:53:46.05ID:/Lpq1ndz
>>945
画面表示はglut
2018/09/14(金) 13:39:29.18ID:GvbetZ+k
ゲームウォッチみたいなのってビットマップじゃないけど、表示する情報量どんくらいなんだろうね?
64bitくらい?
2018/09/14(金) 13:53:35.51ID:q3l06dS7
エスケープシーケンスの話が出たついでに質問なんだけど
コマンド名: エラーレベル: エラーメッセージ
↑こういう形式のエラーで、エラーレベルが赤や黄に色付けされてる場合があるんだけども
これってなにかライブラリがあるのかな。それとも各種アプリケーションが自力でやってんのかな。
2018/09/14(金) 14:03:35.51ID:xLMWwHO5
LSI-Cと聞いて飛んできました
懐かしい・・・
955デフォルトの名無しさん
垢版 |
2018/09/14(金) 15:19:32.14ID:d02sSTx1
>>949

そうそう ああいう感じでやれないかなと思ってる
別に3Dとかじゃないし そんなに高度な技術情報が必要とも思えないんだけどな
APIを勉強すればある程度分かるかな?
2018/09/14(金) 15:37:28.55ID:GvbetZ+k
色付けはほぼ自前なんじゃないかねえ。単に制御文字挟むたけだからね。

端末にお絵かきするならローグでも使った伝統あるcursesで。
2018/09/15(土) 10:21:05.36ID:iTkubaya
>>955
ttp://www.orchid.co.jp/computer/cgame/index.html
2018/09/15(土) 10:24:40.59ID:RjcPqpvv
>>952
ttps://www.nintendo.co.jp/n10/interview/game_and_watch/vol1/index2.html
>というのも、ゲーム&ウオッチで採用したチップは、電卓で使われているのと同じものだったんです。
>そもそも電卓のディスプレイのひとつの数字は7セグメントで表示されるようになっていまして・・・。
(略)
>72セグメントの表示が可能だったそのチップを使って『ボール』をつくったんです。
2018/09/15(土) 12:30:45.82ID:WJY+K2bP
>>958
面白いな
しかしゲームウォッチって、液晶上の配線の都合もあって配置がぐちゃぐちゃになってそうだから、ビットのON/OFFだけとは言え面倒そうだな
2018/09/15(土) 12:52:26.12ID:rgCMOp4r
コンピュータというほど抽象化もされてないんだろうね。
コントローラではあるけども。
2018/09/15(土) 12:53:38.17ID:iTkubaya
配線の都合で配置がぐちゃぐちゃ?
2018/09/15(土) 13:31:29.74ID:OUVvcRON
ゲームウオッチは知らんけど配線パターンの都合でビット配置が変則的になるとかはあるよ
2018/09/15(土) 18:43:35.47ID:8KftQgLD
蒸し返すようだが近代的な処理系でも,ビルドの各作業は分担して実行してると思っていいのね。

プリプロセッサで展開→中間言語に翻訳→アセンブリ言語に翻訳→機械語にアセンブラ→リンク
964デフォルトの名無しさん
垢版 |
2018/09/15(土) 18:59:03.04ID:kl+My5NF
>>957
ありがとう すごい参考になった
2018/09/16(日) 06:08:26.07ID:QKaZz7Xi
>>963 そう考えて良いと思うよ。
ただし、各段階で実行されるツールが独立した実行ファイルか、とか
それぞれの段階で作られる中間状態をファイルとして取り出せるか、
という話なら「場合による」ってことになる。
2018/09/16(日) 23:54:07.55ID:ynEgKPZ+
>>965
ありがとうございます。
2018/09/17(月) 00:45:31.62ID:jghdaJ/O
save-tempsは割と使います
2018/09/17(月) 06:09:25.28ID:5TL9cO8s
gcc -save-temps -o prog prog.c
と指定すると prog.i, prog.s, prog.o が残るのね。
それでもプリプロセス済みCとアセンブリとの中間段階は見られないか。

ちなみに -save-temps と -pipe を同時に指定すると、
gcc: 警告: -save-temps が指定されたため、-pipe は無視されました
……ですってよ、奥様。
2018/09/17(月) 07:57:34.69ID:SBpxj18K
>>968
> それでもプリプロセス済みCとアセンブリとの中間段階は見られないか。
prog.iとprog.sが一体なんだと思ってるんだろう…
2018/09/17(月) 08:09:11.53ID:hbuTlOjm
プリプロセスとかアセンブリとかがあるとなんか困るの?
なんでそんなに必死なのか分からん。
処理が過度に複雑にならないためとか、様々な言語やCPUといった対象に幅広く対応するためとか、いろんな理由で工程を分ける方が合理的でしょうに。
2018/09/17(月) 08:13:06.60ID:BwzrWhGR
鉄鉱石とボーキサイトと石油入れたら自動車が出てくる装置があると思ってるんでしょ
972968
垢版 |
2018/09/17(月) 08:27:18.66ID:5TL9cO8s
.i がプリプロセス済みのC
.s がアセンブリ
ということは分かってるのよ、それらの間にある状態を
ファイルとして見ることができないという話。

GCC用語ではGENERICの段階てことになるかな。
GENERICとアセンブリの間にもまだあるみたいだけど。
2018/09/17(月) 08:28:59.23ID:SBpxj18K
>>970
単なる技術的興味だろ
このスレでうだうだやるなよって言うのならわかるけど必死とか意味わからん
2018/09/17(月) 08:36:20.28ID:SBpxj18K
>>972
> それらの間にある状態を
> ファイルとして見ることができないという話。
gccならこの辺りを見ればいいんじゃね
https://code-examples.net/ja/docs/gcc~7/developer-options
2018/09/17(月) 09:14:28.38ID:z+cSzUXJ
TASMとTCCとTLINKにお世話になった20年前。
2018/09/17(月) 09:19:33.19ID:5TL9cO8s
>>974 ありがとう。
でもオプションの数を見ただけでウンザリしてもうた。
コンパイラ開発者向けのレベルになると最適化処理のステップごとなのね。
2018/09/17(月) 10:17:59.30ID:qtGPC3c9
-Eだろjk
2018/09/17(月) 11:58:09.09ID:5NB0QfSZ
たとえばpccなんかはものすごく外部コマンドにたよってるよね。
man pccとするとその解説が載ってる。
2018/09/17(月) 12:00:30.90ID:5NB0QfSZ
質問者はここを参照するといいかも
http://pcc.ludd.ltu.se/how-it-works/
ただ,PCCはGCCやらClangと違って小ささ,見通しのよさを重視してるから,
GCCとかClangとかはそんなことやってないかもしれん。
(ていうかGCCやClangにおける↑上のリンクみたいなドキュメントはないのかな)
2018/09/18(火) 20:12:09.59ID:2waW+Aqm
分かってて使こてたんちゃうん
2018/09/19(水) 05:40:46.68ID:6Ke1Nn09
C言語(じゃなくてもいいけど)をやってると
標準出力に出力するというのがいかに便利かを痛感するねぇ

下手にファイルやなんかに出力先を指定しようものなら一気に
パーミッションや属性値の問題が噴出するのに対して
標準出力ではそういう一切を気にせずに垂れ流せる
2018/09/19(水) 07:56:02.42ID:bRibFDbQ
C++の学習(入門レベル〜初心者レベル)をするのにC言語の知識って必須なんですか?
読んでるC++入門書が途中から分かりづらかったので独習C++って入門書を買おうとしたんですけど
とあるレビューにC言語を習得してるのが望ましいとか書いてあって気になったんですが…
プログラミング言語自体経験皆無なのですが、どうすればいいでしょうか?
2018/09/19(水) 08:04:03.02ID:37LGoDD1
>>982
C++はCの大半の部分を包含したような言語仕様になっているから、必然的にCの知識も必要になってくる。本を書く方も、Cと重複するような内容まですべて書いてると膨大になってくるから、Cを知っている前提になっている本は多い。
C++の流儀でコーディングするなら使われないCなりの書き方とかもあるけど、基本的にはCは避けて通れないはず。
頑張ってCも身に付けるか、もっと初心者が取っつきやすい言語から始めた方がいいかも。
2018/09/19(水) 08:29:50.54ID:t41Iifgl
じゃあCの知識を前提にしてないC++の本探せば
やさしいC++とかでいいんじゃね
2018/09/19(水) 08:47:40.49ID:OxeqQ4V7
全部やればいいと思うよ。pythonもlispも
C++の必要性を実感するのってプログラムが大規模になってからなので、最初はちょっとポイント絞るのが大変かもね
2018/09/19(水) 10:31:35.10ID:bRibFDbQ
>>983
回答ありがとうございます
ロベールって本読んでたんですが(クラスの章で読むの中断)今の所特にC言語などの前提知識は
要求されてなかったんですが、これから必要になっていく感じですかね・・
具体的にはどれくらいC言語のスキルを付けてからC++に逝くのが望ましいですか?苦しんで覚えるC言語って本はざっと読んだんですがこれじゃ弱いですよね・・
.....それともCに拘らずに何かpythonとかrubyみたいな人気そうで簡単そうな言語で何か作れるくらいまで覚えてからC言語に戻ってきたほうが
一見遠回りのように見えて近道なんでしょうか?質問ばかりですいません;
2018/09/19(水) 10:41:53.75ID:h/A1qpKl
ロベール読めないってマ?
2018/09/19(水) 17:03:44.61ID:t41Iifgl
>プログラミング言語自体経験皆無なのですが
>クラスの章で読むの中断
>ざっと読んだんですがこれじゃ弱いですよね・・

C++にこだわる理由を知りたくなったw
そして読んでるだけ?手動かしてる?
2018/09/19(水) 17:18:24.07ID:5wa+YDhW
俺が禿1stを読み始めた当時も大した理由はなかったな
なんだか凄そう、その程度のことだった
2018/09/19(水) 17:29:55.07ID:hbV0PURz
次スレ頼む。
991デフォルトの名無しさん
垢版 |
2018/09/19(水) 17:57:48.07ID:XSTNMnDw
次スレ

C言語なら俺に聞け 148
http://mevius.5ch.net/test/read.cgi/tech/1537347410/
2018/09/19(水) 20:24:47.33ID:nVz8f0fv
今から覚えるならcはやってもc++はやらんでも良いと思うわ
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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