Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Tagged arrays not being initialized correctly with `...` syntax

オープン
#10 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
42/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
c
領域
compilers

調査の方向性

まず Pawn compiler 3.10.11 で MVCE を再現し、タグ付き enum サイズの初期化と整数サイズ形式を比較します。両方の宣言について、コンパイラーが { 5, ... } をどのように処理するかを追跡します。タグ付き形式がすべての要素で 5 を繰り返し、期待される出力と一致すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

Compiler version: Pawn compiler 3.10.11 downloaded from open.mp v1.4.0.2779 server build

When initializing an array using a tagged enum size with the ellipsis (...) syntax, the array is not being properly initialized. Specifically, elements after the first one are set to 0 instead of being repeated as expected.

MVCE:

enum e_TEST_ENUM {
	TEST_ITEM_1,
	TEST_ITEM_2,
	TEST_ITEM_3,
	TEST_ITEM_4
};

new NotWorking[e_TEST_ENUM] = { 5, ... };

const TEST_ENUM_SIZE = _:e_TEST_ENUM;
new Working[e_TEST_ENUM:TEST_ENUM_SIZE] = { 5, ... };

#assert sizeof NotWorking == sizeof Working

main() {
	for(new i = 0; i != sizeof NotWorking; ++ i) {
		printf("%d, %d", NotWorking[e_TEST_ENUM:i], Working[e_TEST_ENUM:i]);
	}
}

Output:

5, 5  
0, 5  
0, 5  
0, 5  

Expected behavior:

5, 5  
5, 5  
5, 5  
5, 5  
主要言語
C
スター
23
フォーク
17
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

openmultiplayer/compiler のほかの issue

openmultiplayer/compiler の issue をすべて見る

似ている issue

C の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。