C言語に詳しい奴教えてくれ。マイコンのプログラミングしてるんだけど

1 : 2022/02/22(火) 21:39:24.851 ID:ZtAGSDn80
あるサンプルプログラムの中身を見てるんだけど

RCC_DeInit();

という関数?をプログラムの最初のほうで使ってるんだ。

で、ライブラリを見ると

void RCC_DeInit(void)
{
RCC->CR |= (uint32_t)0x00000001;

あと略

てな感じでいきなりアロー演算子を使っているんだ。
アロー演算し使うってことはRCCは構造体だと思うんだけど、構造体って

typedef 型 名前;

みたいな感じで初期化しなくては使えないと思ったんだけど
これってライブラリの中のどこかで初期化しているってこと?

2 : 2022/02/22(火) 21:43:20.701 ID:ZtAGSDn80
誰か!
3 : 2022/02/22(火) 21:43:50.938 ID:5tK1gLhH0
母を!
4 : 2022/02/22(火) 21:49:56.903 ID:ZtAGSDn80
>>3
もうこれ元ネタ知ってるやつおらんやろ
5 : 2022/02/22(火) 21:51:35.383 ID:LcqKxvnvM
僕の名前はオパン・T・アクメールです。
1 :以下、5ちゃんねるからVIPがお送りします[]:2022/02/22(火) 21:41:36.821 ID:ZtAGSDn80
こんな名前をつけた両親を殺します。

こんな名前のやつに教えることなんかねえよ

6 : 2022/02/22(火) 21:53:33.353 ID:r1c5KPQz0
答えようかと思ったけど>>5見てやめた
8 : 2022/02/22(火) 21:54:53.334 ID:ZtAGSDn80
>>6
待って待って!嘘!嘘だから!
7 : 2022/02/22(火) 21:54:02.531 ID:ZtAGSDn80
>>5
なんでそういうことするんですか?僕は悲しい
9 : 2022/02/22(火) 21:55:15.104 ID:UWliDz1n0
嘘つきに教えることはない
11 : 2022/02/22(火) 21:56:10.278 ID:ZtAGSDn80
>>9
やっぱり嘘じゃなかったかもしれないです…
10 : 2022/02/22(火) 21:56:03.919 ID:QZ+taCV10
好きなおパンティ貼れよ
13 : 2022/02/22(火) 21:58:09.634 ID:ZtAGSDn80
>>10
はい…
レス13番の画像サムネイル
12 : 2022/02/22(火) 21:56:14.351 ID:pRKpYxEu0
ネタスレなのか?
マジレスしそうになったw
14 : 2022/02/22(火) 21:58:36.545 ID:ZtAGSDn80
>>12
いやネタレスじゃないから!
マジで教えて!!頼む!!
15 : 2022/02/22(火) 21:59:33.759 ID:l46m+SOH0
マジレスするのがめんどくせえタイプの質問
16 : 2022/02/22(火) 21:59:57.766 ID:ZtAGSDn80
>>15
そんなぁ…(´;ω;`)
17 : 2022/02/22(火) 22:00:20.471 ID:x69EsLQq0
今まさに初期化してるじゃん
18 : 2022/02/22(火) 22:01:18.574 ID:ZtAGSDn80
>>17
ええ…!?
どこで…?
19 : 2022/02/22(火) 22:02:17.346 ID:oUaH7+B5a
>>1はDeInitの意味を理解してないな
21 : 2022/02/22(火) 22:03:19.671 ID:ZtAGSDn80
>>19
RCC_DeInitってただの関数の名前だと思ったんだけど…
まさにその関数の中で初期化してるってこと?
25 : 2022/02/22(火) 22:08:29.441 ID:K5xYG1+g0
>>21
使ってたら廃棄的な意味で最初にクリアじゃね?
やってることはCR変数の最下位ビットに1建てるとそれが初期化状態って意味なんだろきっと
20 : 2022/02/22(火) 22:02:42.362 ID:pRKpYxEu0
マジレスすると
Cの構造体っつーか変数もそうだけど別に初期化しなくても使おうと思えば使える
要は、そのプログラムを作った奴がどう設計したか次第
typedefは初期化とは無関係なので筋違い
26 : 2022/02/22(火) 22:09:22.012 ID:ZtAGSDn80
>>20
マジレスサンクス
なんか勘違いしてそうだな俺
定義と初期化をごっちゃにしていたかも

#define RCC ((RCC_TypeDef *) RCC_BASE)

っていう定義を見つけたんだけど、これで定義は終わってるから
アロー演算子が使えるのかな?

22 : 2022/02/22(火) 22:03:53.103 ID:7P5hs3By0
deinitだから初期化じゃなくて後始末の関数じゃね?
rcc_initはない?
28 : 2022/02/22(火) 22:11:09.644 ID:ZtAGSDn80
>>22
あるかもしれんが見つけられん

>>23

もしかしてこれで実態が作成されてる?

#define RCC ((RCC_TypeDef *) RCC_BASE)

>>24
は・・・力及ばずかたじけない・・・

23 : 2022/02/22(火) 22:06:16.231 ID:K5xYG1+g0
RCCの実態がどっかにいるくね?
27 : 2022/02/22(火) 22:10:12.523 ID:vYiKy/qaa
あれ?アクメールさんこの前もSTMについて質問されてましたよね?
早くアクメ顔見せてくださいよ!!!!!!
29 : 2022/02/22(火) 22:12:30.542 ID:ZtAGSDn80
>>27
あのすみません、そんな人知りません
もう帰っていいですか?
30 : 2022/02/22(火) 22:12:52.904 ID:khpTrQKs0
RCC_BASEがアドレスになってる
それをdefineで構造体のポインタにキャストして、アロー演算子で構造体の要素にアクセス出来るようにしてる

コメント

タイトルとURLをコピーしました