[過去ログ] 0からの、超初心者C言語相談室 (115レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1: 2021/05/19(水)01:34 ID:OYngDuIu(1) AAS
何にも知らない0からの出発、超初心者のためのC言語相談室

C++は、こちら。

0からの、超初心者C++相談室
2chスレ:tech
2: 2021/05/19(水)02:46 ID:iywlut5a(1) AAS
糸冬
3
(1): 2021/05/19(水)07:05 ID:arAgfqcT(1) AAS
#include<stdio.h>

void funcB(void)
{
int b = 20;
printf("b-address: %ld\n", (long)&b);
}

void funcA(void)
{
int a = 10;
printf("a-address: %ld\n", (long)&a);
省13
4
(1): 2021/05/19(水)07:34 ID:dkgz9ZJm(1) AAS
無理しないでPythonでもやっとけ
5: 2021/05/19(水)11:41 ID:psqzmlBB(1/2) AAS
&p
6: 2021/05/19(水)11:41 ID:psqzmlBB(2/2) AAS
もとい
%p
7: 2021/05/19(水)11:51 ID:AeilwxT4(1) AAS
どっかの宿題か
外部リンク[html]:brain.cc.kogakuin.ac.jp
外部リンク[html]:www.atmarkit.co.jp
外部リンク:qiita.com
外部リンク:qiita.com
8: 2021/05/19(水)16:59 ID:ZyjXFBY0(1) AAS
>>4
pythonでもid(obj)で番地見れるからおんなじだよ
変なのpythonスレに誘導するような言動は謹んで頂きたい
9
(2): はちみつ餃子 ◆8X2XSCHEME 2021/05/19(水)17:43 ID:ONEwpJm5(1) AAS
>>3
(1) 一般にはスタックと呼ばれるが言語仕様にはそのような規定はないので、
  実行環境によっては違うこともあるかもね。
  (言語仕様ではオブジェクトの寿命が決められているだけ。)
(2) 主流の CPU では b の方が小さい番地の可能性が高い。
(3) スタックはメモリの上位番地から下位番地に向かって使われる。
  なんでそうなるかっていうのは結局のところそう決めたから
  そうなっているってだけなんで、逆でもかまわないし、
  実際に逆にデザインされたアーキテクチャは存在する。
  外部リンク:ja.wikipedia.org
省3
10
(1): 2021/05/19(水)18:47 ID:SmvgsauD(1) AAS
>>9
ありがとうございます!
本に書いてない内容だったのでスッキリしました。
11
(1): 2021/06/09(水)14:13 ID:3Qpbsqp/(1) AAS
strstr で文字列を検索出来ますが'\0'が含まれているともちろん正常に動作しませんね
メモリ中の'\0'を含むバイトパターンの現れる位置を調べる関数は何ていう名前?
12: はちみつ餃子 ◆8X2XSCHEME 2021/06/09(水)16:35 ID:Ih94CWHU(1) AAS
>>11
標準には無い。 POSIX にも無い。
glibc には memmem があるので場合によってはそれが使えることもあるかもね。
13
(1): 2021/06/10(木)10:48 ID:ZbfFyHii(1) AAS
memchr を使って memmem 相当の関数を造りました
ありがとうございました

ところで memmem の引数や戻り値ってどうして void * なんですか?
char * になってないと使いにくくないですか?
memory 用だからですか?
void * の場合 size_t が各要素の size の倍数なのか char の size の倍数なのか
特別考慮してくれる訳でもないですよね?
14: はちみつ餃子 ◆8X2XSCHEME 2021/06/10(木)14:11 ID:MOYAWABe(1/2) AAS
>>13
> memory 用だからですか?

そう。 バイト列を扱う場合というのは色んな型のメモリブロックである可能性がある。
`void*` の特徴として、他のポインタとの間で暗黙の型変換の対象になるという特別扱いがある。
(C++ ではこの特徴は廃止されているので注意!)

だから

int a=114514;
unsigned char b=0xbf;

memmem(&a, sizeof(a), &b, 1);
省2
15: はちみつ餃子 ◆8X2XSCHEME 2021/06/10(木)14:20 ID:MOYAWABe(2/2) AAS
ちょっと間違えた。
C++ でも void* への暗黙の型変換はアリだけど
void* からの暗黙の型変換はないんだった。
16
(1): 2021/06/11(金)16:56 ID:hP01Bt9y(1) AAS
環境
unix系でxterm系のコンソール

less vi emacs等の
現在のプロンプト位置でプログラムを実行し(全画面表示し)終了すると
元のプロンプト位置(の次の行)に戻ってくる処理をできる限りの低レベルで知りたい

例えば
3行目でvi起動
編集
終了
プロンプトが4行目に復帰する
省3
17: 2021/06/20(日)10:08 ID:vSSpHRy4(1) AAS
char a[4]; で確保したときって
strncpy(a, "abc", sizeof(a)); で良いんですか?
char a[4+1]; で確保する書き方もあれば
strncpy(a, "abc", sizeof(a) - 1); で少なめに指定する書き方もあるようですが
どちらが一般的ですか?
strncpy(a, "abcd", sizeof(a)); ならメモリ壊れますか?
18: 2021/06/20(日)18:24 ID:a10qQPc9(1) AAS
char s[4]
strncpy(a, "abcd", sizeof(s));
はnul文字がコピーされないし

strncpy(a, "abc", sizoef(s)-1);
もnul文字がコピーされない

唯一動作するのは
strncpy(a, "abc", sizeof(s));
だがこれも abc が abcd になったらnul文字がコピーされなくなる

結論:strncpyは使うな
19: 2021/06/20(日)19:07 ID:Q3V/e/tw(1) AAS
×使うな
◯仕様を理解して適切な場面で適切に使え
20: 2021/06/21(月)00:42 ID:zJyyyGxF(1) AAS
正直標準ライブラリは諦めた方がいいと思うんだが

安全な文字列や数値型ライブラリはあるけど、特にどれがメジャーというわけでもないから、チームでやると最大公約数の標準ライブラリ使わざるを得ないっていう
21: 2021/06/26(土)05:41 ID:64gC9b2h(1) AAS
>>16
printf("\e[?1049h"); // これで代替スクリーンバッファを有効にする
printf("\e[?1049l"); // これで代替スクリーンバッファを無効にする
22: 2021/06/29(火)14:18 ID:q4QzgdjF(1/2) AAS
default:
外部リンク:www.mbs.jp
■「日本が財政破綻する確率は100%」と大前研一氏。
私に言わせれば、税金を払える生産年齢人口が減り続けている以上、破綻確率は「100%」である。
今の日本は、いわば“裸の王様”のようなもので、すでに国の財政は破綻している状態だから、いつ国債が暴落して債務不履行になってもおかしくない。
ただ、それは1年後かもしれないし、10年後かもしれない、という話なのである。
そういう事態が起きないように財政運営戦略を作っていくのが、国を預かる為政者がやるべきことだ。

ところが日本は、日本銀行が「異次元金融緩和」を8年以上も継続して財務省が紙幣を刷りまくり、大量発行する国債の消化資金を民間金融機関に提供してきた。
そして、その国債を日銀が民間金融機関から買い取って自ら貯め込み、“禁じ手”とされている事実上の財政ファイナンス(中央銀行が通貨を発行して国債を直接引き受けること)を続けている。
23: 2021/06/29(火)14:18 ID:q4QzgdjF(2/2) AAS
FRBやECBも日銀と同じように金融緩和を行なっているが、むしろ日銀を先行指標として注視している。

一方、日本人の多くは、自分は国債と関係ないと思っている。
だが実際は、郵便貯金や銀行預金が金融機関を通じて国債に流れ、さらに日銀とGPIFという「2頭の鯨」が国債と株を爆買いしている。
つまり、個人金融資産は国債に化け、年金積立金も国債と株に形を変えているわけで、政府が財政破綻したら国民も一蓮托生なのだ。

だが、今の日本は政治家に政府債務に対する危機感がなく、今後も少子化と生産年齢人口の減少が続く。GAFAMのような巨大IT企業もなければ、アメリカや中国などで続々と誕生しているユニコーンも全く出てこない。このような状況では、巨額の政府債務を返せるわけがない。

では、国民はどうすればよいのか? 
資金に余裕があれば、政府が財政破綻しても影響が少ない「不動産」や「金」を買っておいたほうがよいだろう。
利息が付く預貯金は元本1000万円までとその利息しか保護されないし、「株」や「投資信託」や「債券」も国が破綻すれば「国債」と同じく紙屑同然になるからだ。

ただし、最も有効な対策は、自分に投資して世界のどこに行っても稼げる人間になることだ。
もし日本が破綻したとしても、世界のどこかに繁栄しているところはあるはずだから、そこで稼げる力を磨いておくことが唯一の安全・安心・有望な投資先なのである。
24: 2021/07/05(月)11:47 ID:c503ASju(1) AAS
4899774451
4899775067
4046019557
489977463X
25: 2021/09/12(日)04:36 ID:a7tYNi4V(1/2) AAS
#include<stdio.h>

#include<string.h>
int main()

{

char str1[] = "Pointers are fun to use.";

char str2[80], * p1, * p2;
p1 = str1 + strlen(str1) - 1;
p2 = str2;
while (p1 >= str1)
省4
26: [age] 2021/09/12(日)04:40 ID:a7tYNi4V(2/2) AAS
p1 = str1 + strlen(str1) - 1;の部分と*p2++ = *p1--;この部分の意味がよく分かってない可能性が高いので解説してほしいです

str1の先頭アドレス+str1の文字数-1…でつまり何処をさしてるのでしょうか?
p1 >= str1は先頭アドレスより大きい間はって意味ですか?
27: 2021/09/12(日)05:25 ID:cHe5vqGk(1) AAS
>str1の先頭アドレス+str1の文字数-1…でつまり何処をさしてるのでしょうか?
str1の最後の文字(0終端の一個前)

>p1 >= str1は先頭アドレスより大きい間はって意味ですか?
惜しい
「より大きい」ではなく「以上」、=があるから

VisualStudio等のIDEのデバッガでステップ実行して、
各変数の変化・ポインタの指す先を見てればすぐわかるよ
28: 2021/09/12(日)07:15 ID:jZMYjdNi(1) AAS
*p2++ = *p1--

こういのは、意味が分からないしバグるから、MISRA-C で禁止している

Ruby には、++/-- 演算子はない。
Go では単独文扱いで、他の式と組み合わせることは出来ない

MISRA-C でも同様
29: 2021/09/12(日)09:32 ID:x3+6FKDq(1) AAS
>意味が分からないしバグる

馬鹿自慢乙
30: [age] 2021/09/12(日)19:32 ID:0tQ1ubt9(1/3) AAS
*p2++=*p1--
これは参照してるオブジェクトの値に化けてからアドレスを進めてるんですね。
なんとなく分かりました。ありがとうございます!

>>p1 = str1 + strlen(str1) - 1;
ここがなんかモヤモヤするんですけど
数字で表すとどんな感じになってるか教えてほしいです。お願いします。
31
(1): 蟻人間 ◆T6xkBnTXz7B0 2021/09/12(日)19:38 ID:G4gOb8CM(1/2) AAS
str1が文字列の戦闘アドレスを刺している。それに文字列の長さマイナスいちを足すと文字列の最後の文字へのアドレスが得られる。
32
(1): 2021/09/12(日)20:18 ID:0tQ1ubt9(2/3) AAS
>>31
0+25-1って感じでしょうか?今回のケースの場合
33
(1): 蟻人間 ◆T6xkBnTXz7B0 2021/09/12(日)20:37 ID:G4gOb8CM(2/2) AAS
>>32
Visual C++を使ってるならデバッグ厨二、ウォッチ死期で実際に確認で切るはずだ。
34: Mb 2021/09/12(日)20:42 ID:eZoXy3gP(1) AAS
C言語というのは、unix の記述言語としてスタートした言語という経緯があって、
システム記述言語だから「基本的になんでもあり」みたいな危険な言語では
あるのですよ。
それを踏まえて向かいあうんだったら、ニモニックとかアセンブラとか
マクロアセンブラとか、そのあたりまで含めて勉強してほしいと思う。
C++ だって、C に一皮被せただけのマクロ言語だしね。
そこは、アセンブラとの関係まで含めて、勉強しておくといいかもしれない。
ツー手も、昨今の言語だと、「そういうところは気にしなくていい」というのが
潮流ではあるんだけどね。
35: 2021/09/12(日)20:54 ID:0tQ1ubt9(3/3) AAS
>>33
すいませんVCステップイン実行のやり方調べときます。
ありがとうございました。
アセンブラも覚えてみたいんですがCよりさらに難しそうなので…
36: はちみつ餃子 ◆8X2XSCHEME 2021/09/13(月)00:44 ID:b2LY5t5P(1) AAS
アセンブラの詳細を理解する必要はないんだけれど、
C で書いたものがどういう機械語に対応付けられているのかおおよそにでも
知っておくと C の仕様が腑に落ちることは結構あるとは思う。
(現代的なコンパイラは超強力な最適化があるので一対一に対応付けられるようなもんではなくなってしまっているけど……。)
37
(1): 2021/09/15(水)10:15 ID:v8RKbjHW(1) AAS
>>9
亀だけど、マイコン触ってるとスタック上から、下からはグローバル変数など固定配置のメモリ、
その上にヒープまたはそれに類するものがスタック間際までって割当になっててなるほどって思った。
スタックが伸びすぎても下がそこまで使ってなければぶっ飛ぶこともない的な。
スタックオーバーフローの割り込みとかありますしデバッガで様子はわかりますから気にすべきですが。
38
(1): 2021/09/15(水)10:28 ID:JucPjPcF(1) AAS
>>37
むかーし買った秋月のH8キットだったかな
ペラ1枚の説明書しかなかったけどちゃんとメモリマップは載っていてなるほどそういうことか、って思った
39: 2021/09/17(金)20:49 ID:inv44Tua(1) AAS
ラズパイ pico \500
40: 2021/09/18(土)08:22 ID:bA/qQPAi(1) AAS
STM32
41
(1): 2021/09/22(水)02:00 ID:T3iMh7Ht(1/6) AAS
char p[]="12345";
char *p="12345";
const char *p="12345";

先生、この違いをおしえてください。
42: はちみつ餃子 ◆8X2XSCHEME 2021/09/22(水)04:32 ID:1hd+XsHu(1) AAS
>>41
char p[]="12345"; は
char p[6]; としたのと同じように領域が確保されてその内容が "12345" で初期化される。
たとえば p[2]=6; といったように内容を書き換えていい。

char *p="12345"; は
どこかの領域に "12345" という内容の文字列が存在して
p はそれを「指す」という状態。
文字列リテラルは書き換えてはいけない (書き換えたらその結果がどうなるかは保証されない)
というルールなので p[2]=6; というように書き換えるのは (型システム的に禁止されないにもかかわらず!) やるべきではない。
三つの例の内でこれが一番クソな仕様。
省3
43
(1): 2021/09/22(水)10:30 ID:T3iMh7Ht(2/6) AAS
ロボット制御に使いたいんですが、
アドレスaのchar領域cのnビット目(0-7)をon/offするマクロはどう書いたらいいですか?
関数ではなくマクロにしたいです。

#define BitOn(a,c,n) ???????
#define BitOff(a,c,n) ???????
44
(1): 2021/09/22(水)10:51 ID:jJoskI2c(1/4) AAS
>>43
とりあえず自分で書いたやつがどうなるのか出してほしいなぁ。
a はアドレス n はビット位置っていうのはわかるんだけどだ c は何の指定なの?
45: 2021/09/22(水)12:09 ID:T3iMh7Ht(3/6) AAS
>>44
ad1バイトのcharです
46: 2021/09/22(水)12:10 ID:T3iMh7Ht(4/6) AAS
aで指定される1バイトのcharです
47
(1): 2021/09/22(水)12:37 ID:T3iMh7Ht(5/6) AAS
1バイト限定にすればcなしでもいいですね。
48: 2021/09/22(水)12:48 ID:jJoskI2c(2/4) AAS
>>47
やっぱそうだよね。

unsigned char ) ~ * << |= ( 1 &=
パーツを教えてやるよ。あとは自分で考えな。
49
(1): 2021/09/22(水)15:58 ID:KzVGjGnL(1) AAS
そんなにたくさんパーツいらんやろ
50: 2021/09/22(水)16:10 ID:jJoskI2c(3/4) AAS
>>49
ん?要らないのどれ?
51
(2): 2021/09/22(水)18:02 ID:T3iMh7Ht(6/6) AAS
すみません、質問した立場でアレですが、|=と&=は要らないと思いますw
52: 2021/09/22(水)19:14 ID:jJoskI2c(4/4) AAS
>>51
そうなのか。気になるから解決してたら結果教えて。
53: 2021/09/22(水)19:37 ID:u8cZI69m(1) AAS
&、| なしか、興味あるな…
54: 2021/09/23(木)16:53 ID:lZOUN/j/(1) AAS
漏れはヘタレだから、ビットフィールド使ってRAM上で更新してバイト単位でポートに書けば良いやなんて考えちゃう。
55: 2021/09/23(木)17:55 ID:T47aXDe3(1) AAS
>>51
なぜそう思ったw
56
(1): [age] 2021/09/23(木)18:30 ID:KLbp/g+2(1/4) AAS
上位ワード下位ワードを取り出すって意味がよくわからないのですが
int main()
{
int a=77778888;
}
とあったら7777が上位ワードって事でしょうか?
57
(1): 蟻人間 ◆T6xkBnTXz7B0 2021/09/23(木)18:45 ID:WyFAZLWz(1/2) AAS
>>56
それは10進だから、まずはウィンドウズのプログラマ電卓で16進数に直して。
58
(1): 2021/09/23(木)19:09 ID:KLbp/g+2(2/4) AAS
>>57
4A2 CFC8
となりました。あんまりWORDって意味を分かってないんですが
アドレスとかの事じゃなくて符号なしshortの生の数値って意味と捉えていいんでしょうか?
59
(1): 2021/09/23(木)19:29 ID:h/5qm19B(1) AAS
>>58
コンピュータの中のデータはすべてビット(0か1)の集まり
int は32ビットだったり16ビットだったりするが、とにかく0や1がいくつもならべてある
だけだ。

表示するのに、0111100010111101 とかだと長くてわかりづらい。
それを手短にわかりやすく表現しようと 4ビットづつまとめて表示したのが16進数
60
(1): [age] 2021/09/23(木)20:15 ID:KLbp/g+2(3/4) AAS
>>59
なるほど。でも取り出すって意味がよくわからないです
ROWORDとHIWORDって関数は何をしてるんでしょうか
61
(1): 蟻人間 ◆T6xkBnTXz7B0 2021/09/23(木)20:25 ID:WyFAZLWz(2/2) AAS
>>60
LOWORD/HIWORDは、ビットシフトと型キャストをしている。Visual C++なら定義を確認できるはずだ。
62: 2021/09/23(木)21:05 ID:KLbp/g+2(4/4) AAS
>>>61
難しいのでまた型サイズやビット演算復習してからWIN32やってみます。。
解答ありがとうございました。
63: 2021/09/24(金)08:02 ID:eotJkoo2(1/4) AAS
#define BitOn(a,c,n) ( a[c] |= 1<<c )
#define BitOff(a,c,n) ( a[c] &= ~(1<<c) )
64: 2021/09/24(金)08:06 ID:eotJkoo2(2/4) AAS
間違えた
#define BitOn(a,c,n) ( a[c] |= 0x01<<n )
#define BitOff(a,c,n) ( a[c] &= ~(0x01<<n) )

よく使うよ
65: 2021/09/24(金)08:12 ID:eotJkoo2(3/4) AAS
8ビット=1バイト
1ワード=2バイト=16ビット

32ビットCPUなら、通常int は32ビットで2ワード。
66
(3): 2021/09/24(金)14:39 ID:6iUyOY+3(1/2) AAS
CPUがBEかLEか判定するのに使うマクロを
#defineで描くとどんなのがありますか
67: はちみつ餃子 ◆8X2XSCHEME 2021/09/24(金)15:04 ID:hNucDJal(1) AAS
>>66
完全に仕様の範囲内かつ人が一切のヒントを与えずに結果が定数式になる形で自動判定するのはたぶん無理だと思う。
68: 2021/09/24(金)15:43 ID:zyC2bCW7(1) AAS
#define LE ( (1&0x00000001)!=0)?true:false)
#define BE ( (1&0x01000000)!=0)?true:false)
69: 2021/09/24(金)15:47 ID:U2st4CQ0(1) AAS
>>66
そんなこと考えるより環境のエンディアンに依存しないコードの書き方を学んだほうが良い。
70: 2021/09/24(金)15:55 ID:6iUyOY+3(2/2) AAS
htonsですか?ωωω
71: 2021/09/24(金)21:07 ID:naX2jA4f(1) AAS
?true:false
って、意味あるの?
72: 2021/09/24(金)22:00 ID:eotJkoo2(4/4) AAS
意味ないよ
73: 2021/09/24(金)22:25 ID:Dq17+3pv(1) AAS
gcc拡張なら
#define LE ({ int a = 1; ((const char *)&a)[0]; })
うごくかどうかはしらん
74
(1): 2021/09/25(土)11:13 ID:lBxoEpbF(1) AAS
!=0 って意味あるの?
75: はちみつ餃子 ◆8X2XSCHEME 2021/09/25(土)11:44 ID:ToKIzbmV(1) AAS
>>74
有るよ。
76: 2021/09/26(日)21:10 ID:0u8JLN98(1) AAS
!!って意味あるの?
77: 2021/09/27(月)00:30 ID:qCKTTnQF(1) AAS
意味なくもないよ。
78: 2021/09/27(月)01:12 ID:lw6R4pVu(1) AAS
!!は静的解析やコンパイラの警告黙らせる時に使える場合もあるよ
79
(1): 2021/10/25(月)12:19 ID:hesMamgg(1) AAS
char a[3]とした場合 aとa[0]は同じ←分かる
struct A a[3]とした場合 aとa[0]は違うんか?
80: 2021/10/25(月)12:33 ID:Rm/sO20O(1) AAS
>>79
aが配列でa[0]はその先頭要素。これらは同じじゃないよ。
この関係はchar a[3]でもstruct A a[3]でも同じだけど。
81: 2021/10/25(月)12:37 ID:vmRZrQEp(1) AAS
同じじゃない
82: 2021/10/25(月)13:34 ID:dRHq7DJG(1) AAS
「*a と a[0] は同じ」あるいは「a と &a[0] は同じ」と言いたかったのかな?

a の型はあくまで配列型、つまりこの場合は char[3] という型を持つ。
ただし配列が式中に現れた場合には配列の先頭要素を指すポインタに型変換するという規則によって
a と書いたら型 char* の値として解釈される。
先頭要素を指していることになるので a==&a[0] が満たされる。

で、この a[0] という表記もクセモノで、定義上はポインタ演算の構文糖であるという扱いになっている。
a[0] とは *(a+0) のこと。

&a[0] は &*(a+0) と同じということになるんだが、
演算子 & のオペランドが * の適用結果であるときはどちらの適用も無かったことになるというルールがあるので
&*(a+0) から &* は消去されて a+0 が残り、 0 を足しても結果は変わらないからこれも消去すると a が残る。
省1
83: 2021/10/26(火)03:12 ID:7iLVX7OB(1) AAS
VisualStudioでWin32APIの入門したいんですが
どのプロジェクトテンプレートを使えば良いのでしょうか?
84: 2021/10/26(火)15:39 ID:4xSLwudN(1) AAS
Console Application
85: 2021/11/10(水)17:51 ID:TeMjyUmY(1/3) AAS
if elseから学びたいのですが、余計な習っていない文がついたサイトばかり出てきます。
どこを見ればいいのでしょうか
86: 2021/11/10(水)19:04 ID:TeMjyUmY(2/3) AAS
この際、本でもいいです。買います。
87: 蟻人間 ◆T6xkBnTXz7B0 2021/11/10(水)19:05 ID:Ibdkkh+M(1/2) AAS
普通にリファレンスを読めば?
88: 2021/11/10(水)19:45 ID:TeMjyUmY(3/3) AAS
出来が悪すぎて
89: 蟻人間 ◆T6xkBnTXz7B0 2021/11/10(水)19:50 ID:Ibdkkh+M(2/2) AAS
おむつ? おつむ?
90: 2021/11/11(木)18:53 ID:N0+2xiNh(1/7) AAS
今、リファレンスなんてまともなの売ってない
頼んでもいない文が山盛りついていて、一からやりたい奴は苦労している
とほほのhtmlみたいなのは売ってないんだよ
91: 2021/11/11(木)18:54 ID:N0+2xiNh(2/7) AAS
つまりリファレンス足り得てない本ばっか
いま、プログラムを始めるのは独学では不可能と言ってもいい
92: 2021/11/11(木)18:57 ID:N0+2xiNh(3/7) AAS
ちなみにオクにも出なくなったので手に入らない
93: 2021/11/11(木)18:58 ID:N0+2xiNh(4/7) AAS
分かりづらい言い方しなければ、今はif elseから始める本は売ってない
94: 蟻人間 ◆T6xkBnTXz7B0 2021/11/11(木)19:02 ID:CgY0hHY1(1/5) AAS
紙のリファレンスを読むという発想で生き残れるとは思えない。そこはもうデジタルファイルかウェブだよ。
95
(1): 蟻人間 ◆T6xkBnTXz7B0 2021/11/11(木)19:07 ID:CgY0hHY1(2/5) AAS
ほれ
外部リンク:cpprefjp.github.io
外部リンク:en.cppreference.com
96: 蟻人間 ◆T6xkBnTXz7B0 2021/11/11(木)19:16 ID:CgY0hHY1(3/5) AAS
君等の政府を見てみよ。教科書すらデジタル化できない。日本語入力の標準化すらままならない。紙ベース、電話ベースの考えなんかデジタル化で吹っ飛ぶ時代なんだ。
97
(1): 2021/11/11(木)19:17 ID:N0+2xiNh(5/7) AAS
>>95
これをどう初心者が読むんだ???読めないよ
基本的な構文はこうします、ああします、がなにもない
98
(1): 蟻人間 ◆T6xkBnTXz7B0 2021/11/11(木)19:24 ID:CgY0hHY1(4/5) AAS
>>97
残念だが、C言語はC++に飲み込まれたんだ。だから今C言語のみを参照するのは時代遅れ。目次からC言語の部分を参照:
外部リンク[html]:cpprefjp.github.io
99: 2021/11/11(木)19:26 ID:N0+2xiNh(6/7) AAS
簡素な実例を使って一個づつ説明しないんじゃ、初心者は誰も読めん
100: 蟻人間 ◆T6xkBnTXz7B0 2021/11/11(木)19:27 ID:CgY0hHY1(5/5) AAS
たとえば、C言語のprintf関数を見たいのであればC++のstd::printfを参照しないといけない。
101: 2021/11/11(木)19:32 ID:N0+2xiNh(7/7) AAS
elseをさもなくば、とか訳すのな、それは合ってる
しかし
n>10とかifに入ってたのなら初心者には、さもなくばではなく
10より小さければ、という意味になります。と書かんといかん。

なんだかねえ、わざとやってんのか
全てを伝えづともそれくらい書かないとダメだろと言いたい
102: はちみつ餃子 ◆8X2XSCHEME 2021/11/12(金)00:56 ID:r8IM8kKp(1/2) AAS
>>98
そんなことはない。
C 由来の関数は C++ の規格では C の規格を参照していて、詳細は C の規格を見ないと書いてない。
C と C++ は付かず離れず平行して存続すると D&E でも言及されている。

だいたい C のほとんどの関数はそのまま使うには C++ では行儀が悪いことが多いだろ。
互換性の都合で仕方なく入ってるだけで、 C++ に取り込みたくなんてないと思う。
103: はちみつ餃子 ◆8X2XSCHEME 2021/11/12(金)01:19 ID:r8IM8kKp(2/2) AAS
入門書というのは必ずしも簡単ではないということは知っておいて欲しい。
その分野でまず必要な知識を書いてあるのが入門書というもので、専門書の一種には違いないわけで。
ハードルを下げようと思えばいくらでも下げられるし、
実際に絵本に毛の生えたような説明の仕方をしているものもあるのだけれど、
きちんとした知識にするにはそれなりに難解な部分だって最終的には避けられない。

入門書なのに難しすぎる! と思うこともあるかもしれないけど、実際にそれは入門に必要なんだってば。
104: 2021/11/12(金)18:39 ID:Ln6Hv7ms(1/5) AAS
必要ない
105: 2021/11/12(金)18:39 ID:Ln6Hv7ms(2/5) AAS
そんな難解な教え方している専門学校ですらどこにもない
106: 蟻人間 ◆T6xkBnTXz7B0 2021/11/12(金)19:13 ID:BtQklgip(1) AAS
アスキーとかナツメとか技術評論社あたりを当たると入門書が見つかると思うぜ。
107: 2021/11/12(金)19:24 ID:Ln6Hv7ms(3/5) AAS
売ってない
実在しない
どれだ
108: 2021/11/12(金)19:29 ID:Ln6Hv7ms(4/5) AAS
害虫がまた初心者向けに少しでもなるようなページを検索結果から消しているな
109: 2021/11/12(金)19:35 ID:Ln6Hv7ms(5/5) AAS
そんなに早死にしたいのかねえ
110: 2021/11/26(金)12:10 ID:ncT7Zn6W(1) AAS
>>38
秋月のPIC用c使ってるけどこれ規格準拠する気更々ないよな、cっぽいナニカ
まあアマチュア向けで気にすることも無いと思うけど

するとPCスマホ組み込みサポート網羅すべく頑張ってるc規格が可哀想に思えてくる…
111: 2021/11/28(日)00:02 ID:A21vXR4U(1) AAS
スタック数段のマイナーマイコンcだと関数スコープから呼べない標準関数があったりしたな
何段消費するか明示して欲しい

まさかテストケースをグローバルで書いてるわけないよな
112: 2021/11/28(日)00:41 ID:1ODb51AX(1) AAS
徹底的に呼び出し避けたマクロライブラリも挙動不審になりがちだしあきらめよう
113: 2023/06/11(日)23:42 ID:NEZaQnIG(1) AAS
>>66
#defineでは書けなかった
でもif文で処理を分ければ最適化で通らない処理とif文の処理は削除される
int a=1;
if((char)a==0)
{
;
}
else
{
省3
114: 2023/06/12(月)04:26 ID:wqSZy/1p(1) AAS
間違えた
int a=1;
if(*((char *)&a)==0)
{
;
}
else
{
;
}
省1
115: 2023/09/21(木)22:09 ID:6guGpWia(1) AAS
ほんまにかいな
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.279s*