เบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”เบžเบฒเบชเบฒเบเบฃเบฑเปˆเบ‡เปเบญเบชเบ›เบฒเป‚เบเบ™

OnWorks favicon

sparse - เบญเบญเบ™เบฅเบฒเบเปƒเบ™เบ„เบฅเบฒเบง

เป€เบฎเบฑเบ”เบงเบฝเบเป€เบšเบปเบฒเบšเบฒเบ‡เปƒเบ™ OnWorks เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบŸเบฃเบตเบœเปˆเบฒเบ™ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator

เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ sparse เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เปƒเบ™ OnWorks เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบŸเบฃเบตเป‚เบ”เบเปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡เปƒเบ™เบซเบผเบฒเบเบชเบฐเบ–เบฒเบ™เบตเป€เบฎเบฑเบ”เบงเบฝเบเบญเบญเบ™เป„เบฅเบ™เปŒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบฑเปˆเบ™ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS emulator เบญเบญเบ™เป„เบฅเบ™เปŒ.

เป‚เบ„เบ‡เบเบฒเบ™:

NAME


sparse - Semantic Parser เบชเปเบฒเบฅเบฑเบš C

เบชเบฐเบซเบผเบธเบšเบชเบฑเบ‡เบฅเบงเบก


เป€เบฅเบฑเบเบ™เป‰เบญเบ [เบ„เปเบฒเป€เบ•เบทเบญเบ™ OPTIONS] ... file.c

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”


Sparse parses C source เปเบฅเบฐเบŠเบญเบเบซเบฒเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เบœเบฐเบฅเบดเบ”เบ„เปเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

Sparse เบเบญเบกเบฎเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบŠเบธเบ”เบ‚เบญเบ‡เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡. เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™
Sparse เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปƒเบŠเป‰เบ•เบปเบงเป€เบฅเบทเบญเบเป€เบ•เบทเบญเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™ - เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡.
sparse เบญเบญเบเบšเบฒเบ‡เบ„เปเบฒเป€เบ•เบทเบญเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™; เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™, เบœเปˆเบฒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบ‚เบญเบ‡
เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบ—เบตเปˆโ€‹เบเปˆเบฝเบงโ€‹เบ‚เป‰เบญเบ‡โ€‹, -Wno-เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡.

เบ„เปเบฒเป€เบ•เบทเบญเบ™ OPTIONS


-Wsparse-เบ—เบฑเบ‡เปเบปเบ”
เป€เบ›เบตเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบฅเบฑเบเบ™เป‰เบญเบเบ—เบฑเบ‡เปเบปเบ”, เบเบปเบเป€เบงเบฑเป‰เบ™เบชเบณเบฅเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™
-Wno-เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡.

-Waddress-เบŠเปˆเบญเบ‡
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ›เบฐเบชเบปเบกเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบ—เบตเปˆเบขเบนเปˆเบ•เปˆเบฒเบ‡เบเบฑเบ™.

Sparse เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบฐเบซเบเบฒเบ __attribute__((address_space(num))) on
pointers, เป€เบŠเบดเปˆเบ‡เบเปเบฒเบ™เบปเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ pointer เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ num (เบ„เบปเบ‡เบ—เบตเปˆ
เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก). เบเบฑเบš -Waddress-เบŠเปˆเบญเบ‡, Sparse เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบŠเบตเป‰เบเบฑเบšเบ›เบฐเป€เบžเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบ„เบทเบเบฑเบ™
เปเบ•เปˆเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เป€เบžเบทเปˆเบญ override เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ™เบตเป‰, เป€เบŠเบฑเปˆเบ™:
เบชเปเบฒเบฅเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ›เปˆเบฝเบ™เบ•เบปเบงเบŠเบตเป‰เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ—เบตเปˆเบขเบนเปˆ, เปƒเบซเป‰เปƒเบŠเป‰เบ›เบฐเป€เบžเบ”เบ™เบฑเป‰เบ™
เบ›เบฐเบเบญเบšเบกเบต __เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ__((เบšเบฑเบ‡เบ„เบฑเบš)).

เป€เบšเบปเบฒเบšเบฒเบ‡เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™, เปƒเบซเป‰เปƒเบŠเป‰ -Wno-address-space.

-Wbitwise
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบซเบผเบทเบžเบดเบกเบšเปเปˆเบเบปเบ‡เบเบฑเบ™เบเบฑเบšเบ›เบฐเป€เบžเบ”เบˆเปเบฒเบ™เบงเบ™เบˆเปเบฒเบเบฑเบ”.

Sparse เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบฐเบซเบเบฒเบ, __เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ__((เบšเบดเบ”เบšเบดเบ”)), เป€เบŠเบดเปˆเบ‡เบชเป‰เบฒเบ‡
เบ›เบฐเป€เบžเบ”เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบˆเบณเบเบฑเบ”เปƒเปเปˆเบˆเบฒเบเบ›เบฐเป€เบžเบ”เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบžเบทเป‰เบ™เบ–เบฒเบ™, เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบ–เบฒเบ™
เบ›เบฐเป€เบžเบ” integer เปเบฅเบฐเบˆเบฒเบเบ›เบฐเป€เบžเบ” integer เบˆเปเบฒเบเบฑเบ”เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ›เบฐเบเบฒเบ”เปƒเบ™เบญเบฑเบ™เบ”เบฝเบงเบเบฑเบ™
เบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™ เบซเบผเบท เบžเบดเบกเบ›เบฐเป€เบžเบ”. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป‚เบ„เบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡ เบžเบดเบกเบ›เบฐเป€เบžเบ”s for
เบ›เบฐเป€เบžเบ”เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบกเบต endianness เบชเบฐเป€เบžเบฒเบฐ. เบเบฑเบš -Wbitwise, เบเบฐเปเบˆเบเบเบฐเบˆเบฒเบเบˆเบฐเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปƒเบ”เป†
เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เบชเบฒเบ”โ€‹เบ™เบญเบโ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™ bitwiseโ€‹,
เปเบฅเบฐเบเบฒเบ™เปเบ›เบ‡เปƒเบ”เป†เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบ–เบทเบเบˆเปเบฒเบเบฑเบ”เป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ”เบญเบทเปˆเบ™, เบเบปเบเป€เบงเบฑเป‰เบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบชเบฝเบ‡เป‚เบซเบงเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”
เบ›เบฐเบเบญเบšเบกเบต __เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ__((เบšเบฑเบ‡เบ„เบฑเบš)).

__bitwise เบˆเบปเบšเบฅเบปเบ‡เบ”เป‰เบงเบเบเบฒเบ™เป€เบ›เบฑเบ™ "เบเบฒเบ™เปเบเบเบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเปเบ‚เบ‡เปเบฎเบ‡เบเบงเปˆเบฒ". เบญเบฑเบ™เบ™เบฑเป‰เบ™เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบˆเบปเป‰เบฒ
เป€เบžเบทเปˆเบญเบ›เบฐเบชเบปเบกเบเบฑเบšเบˆเบณเบ™เบงเบ™เบšเปเปˆเบšเบดเบ”เบšเบดเบ”, เบชเบฐเบ™เบฑเป‰เบ™เบ”เบฝเบงเบ™เบตเป‰เบกเบฑเบ™เบเบฒเบเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบชเบนเบ™เป€เบชเบเบ›เบฐเป€เบžเบ”เป‚เบ”เบ
เบœเบดเบ”เบžเบฒเบ”.

__bitwise เปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบš *เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ* เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบชเบปเบกเบเบฑเบšเบ›เบฐเป€เบžเบ”เบญเบทเปˆเบ™เป†, เปเบฅเบฐเบ™เบฑเป‰เบ™
เบ—เปˆเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเปเบšเบšเบชเบธเปˆเบก (เปเบ•เปˆเบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก 0 เปเบกเปˆเบ™เบžเบดเป€เบชเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ,
เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเบขเปˆเบฒเบ‡เบ‡เบฝเบšเป† iirc - เบกเบฑเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบš "NULL" เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบŠเบตเป‰). เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™
"gfp_t" เบซเบผเบทเบ›เบฐเป€เบžเบ” "endianness เบ›เบญเบ”เป„เบž" เบˆเบฐเป€เบ›เบฑเบ™ __bitwise: เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰.
เบžเบงเบเป€เบ‚เบปเบฒเป‚เบ”เบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบš * เบ›เบฐเป€เบžเบ”เบ™เบฑเป‰เบ™ * เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ.

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™ bitwise เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบŠเบญเบเบซเบฒเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ›เบฐเป€เบžเบ”. Sparse เบšเปเปˆ
เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wcast-to-as
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ„เบฒเบชเบ—เบ—เบตเปˆเป€เบžเบตเปˆเบกเบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเปƒเบซเป‰เบเบฑเบšเบ›เบฐเป€เบžเบ”เบ•เบปเบงเบŠเบตเป‰.

เบ™เบฑเบเบชเบฐเปเบ”เบ‡เบ—เบตเปˆเบ›เบฐเบเบญเบšเบกเบต __เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ__((เบšเบฑเบ‡เบ„เบฑเบš)) เบˆเบฐเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ™เบตเป‰.

Sparse เบšเปเปˆเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wcast-เบซเบเปเป‰
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ„เบฒเบชเบ—เบ—เบตเปˆเบ•เบฑเบ”เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆ.

เป€เบšเบปเบฒเบšเบฒเบ‡เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™, เปƒเบซเป‰เปƒเบŠเป‰ -Wno-cast-truncate.

-Wcontext
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™ synchronization เบซเบผเบทเบชเบฐเบžเบฒเบšเบเบฒเบ™ delimited เบญเบทเปˆเบ™เป†.

Sparse เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบงเบดเบ—เบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบซเบผเบทเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”
เบชเบฐเบžเบฒเบšเบเบฒเบ™, เป€เบŠเบฑเปˆเบ™: synchronization. เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบฐเบซเบเบฒเบ
__เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ__((เบšเปเบฅเบดเบšเบปเบ”(เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ,in_context,out_context)) เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบชเบฐเบžเบฒเบšเบเบฒเบ™
เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ (เบ•เบปเบงเบขเปˆเบฒเบ‡, lock) เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบตเบกเบนเบ™เบ„เปˆเบฒ in_context (เบ„เบปเบ‡เบ—เบตเปˆ
nonnegative integer) เป€เบกเบทเปˆเบญเบ–เบทเบเป€เบญเบตเป‰เบ™, เปเบฅเบฐเบเบฑเบšเบ„เบทเบ™เบ”เป‰เบงเบเบ„เปˆเบฒ out_context (เบ„เบปเบ‡เบ—เบตเปˆ
nonegative integer). เบชเปเบฒเบฅเบฑเบš APIs เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบœเปˆเบฒเบ™ macros, เปƒเบŠเป‰เปเบšเบšเบŸเบญเบกเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™
__เบชเบฐเบžเบฒเบšเบเบฒเบ™__(เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ,in_value,out_value) เบขเบนเปˆเปƒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡เบกเบฐเบซเบฒเบžเบฒเบ.

เบเบฑเบš -Wcontext Sparse เบˆเบฐเป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบกเบฑเบ™เป€เบซเบฑเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบฐเบžเบฒเบšเบเบฒเบ™เป‚เบ”เบเบšเปเปˆเบกเบต
เบŠเบตเป‰เบšเบญเบเบ™เบตเป‰เบ”เป‰เบงเบ a context เบ„เบธเบ™โ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹, เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบซเบผเบธเบ”โ€‹เบœเปˆเบญเบ™โ€‹เบชเบฐโ€‹เบžเบฒเบšโ€‹เบเบฒเบ™โ€‹เบ‚เป‰เบฒเบ‡โ€‹เบฅเบธเปˆเบกโ€‹เบ™เบตเป‰โ€‹เบชเบนเบ™โ€‹
(เป€เบŠเบฑเปˆเบ™: เป‚เบ”เบเบเบฒเบ™เบ›เปˆเบญเบ lock เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบกเบฑเบ™), เบซเบผเบทเบเบฑเบšเบ„เบทเบ™เบกเบฒเบ”เป‰เบงเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡
เบชเบฐเบžเบฒเบšเบเบฒเบ™ (เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบš lock เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบญเบเบกเบฑเบ™). เบเบฐเปเบˆเบเบเบฐเบˆเบฒเบเบเบฑเบ‡เบˆเบฐเป€เบ•เบทเบญเบ™
เบเปˆเบฝเบงเบเบฑเบšเบšเบฅเบฑเบญเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบฑเบšเบชเบฐเบžเบฒเบšเบเบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

เป€เบšเบปเบฒเบšเบฒเบ‡เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™, เปƒเบซเป‰เปƒเบŠเป‰ -Wno-context.

-Wdecl เป€เบ•เบทเบญเบ™โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบšเปเปˆโ€‹เบกเบตเป„เบŸเบŸเป‰เบฒเบชเบฐเบ–เบดเบ” เบ•เบปเบงเปเบ›เบซเบผเบทเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเบšเปเปˆเบกเบตเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰
เบเบฒเบ™เบ›เบฐเบเบฒเบ”.

เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹เบชเปˆเบงเบ™โ€‹เบ•เบปเบง (เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปเบฅเบฐโ€‹เบ•เบปเบงโ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹) เบžเบฒเบโ€‹เปƒเบ™โ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ—เบตเปˆโ€‹เปƒเบซเป‰โ€‹เบกเบฒโ€‹เบ„เบงเบ™โ€‹เบˆเบฐโ€‹
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เป„เบŸเบŸเป‰เบฒเบชเบฐเบ–เบดเบ”, เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบงเบ”เบžเบปเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰
เบชเบฑเบ™เบเบฒเบฅเบฑเบ, เปเบฅเบฐเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบญเบทเปˆเบ™เป†เบˆเบฒเบเบเบฒเบ™เบญเบตเบ‡เปƒเบชเปˆเบชเบฑเบ™เบเบฒเบฅเบฑเบเบžเบฒเบเปƒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ
เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹เบ—เบตเปˆโ€‹เปƒเบŠเป‰โ€‹เป‚เบ”เบโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เปเบซเบผเปˆเบ‡โ€‹เบญเบทเปˆเบ™เป†โ€‹เบˆเบฐโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบฒเบ”โ€‹เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบšเบดเปˆเบ‡โ€‹เป€เบซเบฑเบ™โ€‹เป„เบ”เป‰โ€‹
เป„เบŸเบฅเปŒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš, เป€เบŠเบฑเปˆเบ™เปƒเบ™เป„เบŸเบฅเปŒเบซเบปเบง. เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบฑเบ‡เปเบปเบ”เบ„เบงเบ™เบ•เบปเบเบขเบนเปˆเปƒเบ™เบญเบฑเบ™เปœเบถเปˆเบ‡
เบชเบญเบ‡เบ›เบฐเป€เบžเบ”เบ™เบตเป‰. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฑเบš -Wdecl, Sparse เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเบ™เบดเบเบฒเบกเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเปƒเบ”เป†
เบเบฑเบšเบ—เบฑเบ‡เบชเบญเบ‡ เป„เบŸเบŸเป‰เบฒเบชเบฐเบ–เบดเบ” เบซเบผเบทเบเบฒเบ™เบ›เบฐเบเบฒเบ”. เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ™เบตเป‰, เบ›เบฐเบเบฒเบ”เบชเปˆเบงเบ™เบ•เบปเบง
เบชเบฑเบ™เบเบฒเบฅเบฑเบ เป„เบŸเบŸเป‰เบฒเบชเบฐเบ–เบดเบ”, เปเบฅเบฐเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเป„เบŸเบฅเปŒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบกเบตเบชเบฑเบ™เบเบฒเบฅเบฑเบ
เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเบเปˆเบญเบ™ (เป€เบŠเบฑเปˆเบ™: เป‚เบ”เบเบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเป„เบŸเบฅเปŒเบซเบปเบงเบ‚เปเป‰เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก).

เป€เบšเบปเบฒเบšเบฒเบ‡เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™, เปƒเบซเป‰เปƒเบŠเป‰ -Wno-decl.

-Wdeclaration เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ–เบฐโ€‹เปเบซเบผเบ‡โ€‹เบเบฒเบ™โ€‹
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบฑเบ™.

เบเบฒเบ™เบ›เบฐเบเบฒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบขเบนเปˆเปƒเบ™ C99 เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ C89.

Sparse เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบกเบทเปˆเบญเบžเบฒเบชเบฒ C เป€เบ›เบฑเบ™ C89 (ie -ansi
เบซเบผเบท -std=c89). เป€เบžเบทเปˆเบญเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™, เปƒเบซเป‰เปƒเบŠเป‰ -Wno-declaration-เบซเบผเบฑเบ‡เบˆเบฒเบเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™.

-Wdefault-bitfield-sign
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš bitfield เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบฅเบปเบ‡เบ™เบฒเบกเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡.

Bitfields เบšเปเปˆเบกเบตเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™. (C99 6.7.2) A bitfield
เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบŠเบฑเบ”เป€เบˆเบ™ เป€เบŠเบฑเบ™เป€เบ‚เบปเป‰เบฒ or เบฅเบปเบ‡เบ™เบฒเบก เบชเป‰เบฒเบ‡เบšเบฑเบ™เบซเบฒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบŠเบญเบšเปเบง
เบ—เบตเปˆเบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบ„เปˆเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆ. เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰, เปƒเบซเป‰เบฅเบฐเบšเบธ bitfield
เบžเบดเบกเป€เบ›เบฑเบ™ เป€เบŠเบฑเบ™เป€เบ‚เบปเป‰เบฒ or เบฅเบปเบ‡เบ™เบฒเบก เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡.

Sparse เบšเปเปˆเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wdesignated-init
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบ–เบทเบเบซเบกเบฒเบเบงเปˆเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”
เบ•เบปเบงเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

Sparse เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ __attribute__((designated_init)) เป€เบŠเบดเปˆเบ‡เปเบฒเบเป€เบ–เบดเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™
เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™. Sparse เบˆเบฐเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เปเบฒเปเบซเบ™เปˆเบ‡
เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ เบซเบผเบทเบ•เบปเบงเปเบ›เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบกเบตเบญเบฑเบ™เบ™เบตเป‰
attribute

เบเบฒเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡เบˆเบฐ insulate เบฅเบฐเบซเบฑเบ”
เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ›เบฐเป€เบžเบ”เบ™เบฑเป‰เบ™เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”, เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™
เบ›เปˆเบฝเบ™เบ•เบปเบงเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบชเบณเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบ™เบฑเป‰เบ™ เป€เบงเบฑเป‰เบ™เป€เบชเบเปเบ•เปˆเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบˆเบฐเป€เบฅเบตเปˆเบกเบเบฒเบ™เบฅเบถเบšเบญเบญเบ เบซเบผเบท เบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰
เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบžเบฒเบโ€‹เบชเบฐโ€‹เบซเบ™เบฒเบกโ€‹.

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ›เบฐเป€เบžเบ”เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ•เบปเบงเบŠเบตเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบชเปเบฒเบฅเบฑเบš
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบŠเบฑเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡, เป€เบŠเบดเปˆเบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ NULL
เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบžเบฒเบโ€‹เบชเบฐโ€‹เบซเบ™เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบเปˆเบฒเบงโ€‹เบกเบฒโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ—เบตเปˆโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป„เบงเป‰โ€‹เบˆเบฐโ€‹เบŠเบตเป‰โ€‹เบšเบญเบโ€‹เป„เบ”เป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹
เบ‚เบฒเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ™เบฑเป‰เบ™.

เป€เบšเบปเบฒเบšเบฒเบ‡เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™, เปƒเบซเป‰เปƒเบŠเป‰
-Wno-designated-init.

-Wdo- เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš loops do-while เบ—เบตเปˆเบšเปเปˆ delimit the loop body with braces.

Sparse เบšเปเปˆเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wenum เบšเปเปˆเบเบปเบ‡เบเบฑเบ™
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ enum เบžเบดเบกเป€เบกเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™
เบญเบทเปˆเบ™ enum เบ›เบฐเป€เบžเบ”, เบกเบญเบšเบซเบกเบฒเบเปƒเบซเป‰เบ„เบปเบ™เบญเบทเปˆเบ™ enum เบ›เบฐเป€เบžเบ”, เบซเบผเบทเบ–เปˆเบฒเบเบ—เบญเบ”เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบเบฑเบš a
เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ„เบฒเบ”เบซเบงเบฑเบ‡เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡ enum เบ›เบฐเป€เบžเบ”

เป€เบšเบปเบฒเบšเบฒเบ‡เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™, เปƒเบซเป‰เปƒเบŠเป‰ -wno-enum-mismatch.

-Winit-cstring
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ char array เบ—เบตเปˆเบกเบตเบชเบฒเบ C เบ„เบปเบ‡เบ—เบตเปˆเบเบฒเบงเป€เบเบตเบ™เป„เบ›.

เบ–เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ char array เปเบฅเบฐเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡ string เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™, เบšเปเปˆเบกเบต
space เบชเปเบฒเบฅเบฑเบš nul char เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡ string เปƒเบ™ array:

char s[3] = "abc";

เบ–เป‰เบฒ array เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™ byte array, เบšเปเปˆเปเบกเปˆเบ™ C string, เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบดเปˆเบ‡เบฅเบปเบšเบเบงเบ™.
เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ–เป‰เบฒ array เบ–เบทเบเบชเบปเปˆเบ‡เบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบš C string เป€เบŠเบฑเปˆเบ™ printf(%s)
เปเบฅเบฐ strcmp, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบšเบฑเบ™เบซเบฒ.

Sparse เบšเปเปˆเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wnon-pointer-null
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปƒเบŠเป‰ 0 เป€เบ›เบฑเบ™เบ•เบปเบงเบŠเบตเป‰ NULL.

0 เบกเบตโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เป€เบ•เบฑเบกโ€‹. NULL เบกเบตเบ›เบฐเป€เบžเบ”เบ•เบปเบงเบŠเบตเป‰.

เป€เบšเบปเบฒเบšเบฒเบ‡เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™, เปƒเบซเป‰เปƒเบŠเป‰
-Wno-เบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเบŠเบตเป‰-null.

-Wold-initializer
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปƒเบŠเป‰ syntax เบเปˆเบญเบ™ C99 GCC เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™.

C99 เบชเบฐเปœเบญเบ‡ syntax เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเบณเบฅเบฑเบšเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ or เบชเบฐเบซเบฐเบžเบฒเบš
เบ•เบปเบงเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™:

struct structname var = { .field = เบ„เปˆเบฒ };

GCC เบเบฑเบ‡เบกเบต syntax เป€เบเบปเปˆเบฒ, เบšเปเปˆเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบตเปˆ predates
C99:

struct structname var = { field: value };

Sparse เบˆเบฐเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ syntax เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ‚เบญเบ‡ GCC เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเบฒเบ™เบปเบ”
เบ•เบปเบงเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ™เบตเป‰, เบ›เปˆเบฝเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบžเบทเปˆเบญเปƒเบŠเป‰
เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C99 syntax.

เป€เบšเบปเบฒเบšเบฒเบ‡เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™, เปƒเบซเป‰เปƒเบŠเป‰
-Wno-old-initializer.

-wone-bit-signed-bitfield
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบšเบดเบ” เป€เบŠเบฑเบ™เป€เบ‚เบปเป‰เบฒ bitfields.

เปœเป‰เบญเบเปœเบถเปˆเบ‡ เป€เบŠเบฑเบ™เป€เบ‚เบปเป‰เบฒ bitfield เบชเบฒเบกเบฒเบ”เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบ„เปˆเบฒ 0 เปเบฅเบฐ -1, เบซเบผเบทเบเบฑเบšเบšเบฒเบ‡ compilers
เบžเบฝเบ‡เปเบ•เปˆ 0; เบ™เบตเป‰เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”
เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ 0 เปเบฅเบฐ 1.

เป€เบšเบปเบฒเบšเบฒเบ‡เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™, เปƒเบซเป‰เปƒเบŠเป‰
-Wno-one-bit-signed-bitfield.

-Wparen-string
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปƒเบŠเป‰ string เบงเบปเบ‡เป€เบฅเบฑเบšเป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ array.

เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C syntax เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบชเบฐเบ•เบฃเบดเบ‡เบงเบปเบ‡เป€เบฅเบฑเบšเป€เบ›เบฑเบ™เบ•เบปเบงเบ•เบฑเป‰เบ‡เบ•เบปเป‰เบ™เบ‚เบญเบ‡ array.
GCC เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ syntax เบ™เบตเป‰เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ. เบเบฑเบš -Wparen-string, เบเบฐเปเบˆเบเบเบฐเบˆเบฒเบเบˆเบฐเป€เบ•เบทเบญเบ™
เบเปˆเบฝเบงเบเบฑเบš syntax เบ™เบตเป‰.

Sparse เบšเปเปˆเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wptr-subtraction-blows
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบฅเบปเบšเบชเบญเบ‡เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบกเบตเบ‚เบฐเปœเบฒเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบเบณเบฅเบฑเบ‡เบชเบญเบ‡.

เบเบฒเบ™เบซเบฑเบเบชเบญเบ‡เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เปƒเบ”เบ™เบถเปˆเบ‡เปƒเบซเป‰เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบ•เบปเบงเป€เบฅเบ
เบ‚เบญเบ‡โ€‹เบฅเบฒเบโ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบ™เบฑเป‰เบ™โ€‹. เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบกเบนเบ™เบ„เปˆเบฒเบ™เบตเป‰, เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง compilers เบˆเบฐเบ•เป‰เบญเบ‡
เปเบšเปˆเบ‡เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เป‚เบ”เบเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบตเปˆเบกเบตเบฅเบฒเบ„เบฒเปเบžเบ‡
เบชเปเบฒเบฅเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบญเบทเปˆเบ™เบ™เบญเบเบˆเบฒเบเบญเปเบฒเบ™เบฒเบ”เบ‚เบญเบ‡เบชเบญเบ‡.

เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ‚เบฝเบ™เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบฅเบปเบšเบ•เบปเบงเบŠเบตเป‰เบกเบฑเบเบˆเบฐเปƒเบŠเป‰เบงเบดเบ—เบตเบญเบทเปˆเบ™เปเบ—เบ™, เป€เบŠเบฑเปˆเบ™
เป€เบ›เบฑเบ™ array indexing with an explicit index array variable, which may allow compilers
เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™.

Sparse เบšเปเปˆเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wreturn-void
เป€เบ•เบทเบญเบ™เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเป€เบžเบ”เบเบฑเบšเบ„เบทเบ™ void เบชเบปเปˆเบ‡เบ„เบทเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบ void.

C99 เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบ™เบตเป‰โ€‹, เปเบฅเบฐโ€‹เปƒเบ™โ€‹เบšเบฒเบ‡โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹เบซเบผเบฒเบโ€‹เปƒเบ™ macroโ€‹
เบ—เบตเปˆเปƒเบŠเป‰ typeof เบซเบผเบทเป€เบญเบปเบฒเบ›เบฐเป€เบžเบ”เป€เบ›เบฑเบ™ macro argument. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบšเบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™
เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบ”เบตเบ™เบตเป‰, เปเบฅเบฐเป‚เบ„เบ‡เบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰ -Wreturn-void เป€เบžเบทเปˆเบญโ€‹เปƒเบซเป‰โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹
เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบกเบฑเบ™.

Sparse เบšเปเปˆเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

- เป€เบ‡เบปเบฒ
เป€เบ•เบทเบญเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบเบฒเบ”เบชเบฑเบ™เบเบฒเบฅเบฑเบเบ—เบตเปˆ shadows เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ”เบฝเบงเบเบฑเบ™เปƒเบ™ an
เบ‚เบญเบšเป€เบ‚เบ”เบ™เบญเบ.

เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

Sparse เบšเปเปˆเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wtransparent-เบชเบฐเบซเบฐเบžเบฑเบ™
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบเบฒเบ”เปƒเบ”เป†เป‚เบ”เบเปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ GCC
__เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ__((transparent_union)).

เป€เบšเบปเบฒเบšเบฒเบ‡เบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเบ›เบดเบ”เบžเบงเบเบกเบฑเบ™, เปƒเบซเป‰เปƒเบŠเป‰
-Wno-เป‚เบ›เปˆเบ‡เปƒเบช-เบชเบฐเบซเบฐเบžเบฑเบ™.

-Wtypesign
เป€เบ•เบทเบญเบ™เป€เบกเบทเปˆเบญเบ›เปˆเบฝเบ™เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบกเป€เบ›เบฑเบ™เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบ›เบฐเป€เบžเบ”เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก
เบกเบตโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบกโ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹.

Sparse เบšเปเปˆเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

-Wundef
เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ preprocessor เบ—เบตเปˆเปƒเบŠเป‰เบ„เปˆเบฒเบ‚เบญเบ‡ undefined
เบชเบฑเบ™เบเบฒเบฅเบฑเบเป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™.

เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C (C99 6.10.1) เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบ„เปˆเบฒเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเปˆเบญเบ™เบเบณเบ™เบปเบ”.
เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ preprocessor, เปเบฅเบฐเบฅเบฐเบšเบธเบงเปˆเบฒเบกเบฑเบ™เบกเบตเบกเบนเบ™เบ„เปˆเบฒ 0. เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก,
เบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป€เบฅเบฑเบเบ™เป‰เบญเบ.

Sparse เบšเปเปˆเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

MISC OPTIONS


-gcc-base-dir dir
เบŠเบญเบเบซเบฒเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบตเปˆ compiler เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เปƒเบ™ dir/include/ เปเบฅเบฐ dir/include-fixed/.

-multiarch-dir dir
เบŠเบญเบเบซเบฒเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบขเบนเปˆเปƒเบ™เป„เบ”เป€เบฃเบฑเบเบ—เปเบฃเบตเบเปˆเบญเบเบ‚เบญเบ‡ multiarch dir. เป„เบ”เป‰ dir เบŠเบทเปˆเบˆเบฐ
เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเป€เบญเบปเบฒเบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ GNU triplet เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ. (เบ•เบปเบงเบขเปˆเบฒเบ‡: i386-linux-
gnu).

เบญเบทเปˆเบ™เป† OPTIONS


-ftabstop=WIDTH
เบเปเบฒเบ™เบปเบ”เป„เบฅเบเบฐเบซเปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เปเบ–เบšเบขเบธเบ”. เบญเบฑเบ™เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบเบฒเบ™เบฅเบฒเบเบ‡เบฒเบ™เบซเบเปเป‰เบ‚เบญเบ‡เบ–เบฑเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡
เบ•เบปเบงเป€เบฅเบเปƒเบ™เบ„เปเบฒเป€เบ•เบทเบญเบ™เบซเบผเบทเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. เบ–เป‰เบฒเบ„เปˆเบฒเปœเป‰เบญเบเบเบงเปˆเบฒ 1 เบซเบผเบทเปƒเบซเบเปˆเบเบงเปˆเบฒ 100,
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบกเปˆเบ™เบ–เบทเบเบฅเบฐเป€เบฅเบตเบ. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 8.

เปƒเบŠเป‰เบญเบญเบ™เป„เบฅเบ™เปŒเปเบšเบšเบเบฐเปเบˆเบเบเบฐเบˆเบฒเบเป‚เบ”เบเปƒเบŠเป‰เบšเปเบฅเบดเบเบฒเบ™ onworks.net


เป€เบŠเบตเบšเป€เบงเบต เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบตเป€เบฎเบฑเบ”เบงเบฝเบเบŸเบฃเบต

เบ”เบฒเบงเป‚เบซเบผเบ”เปเบญเบฑเบš Windows เปเบฅเบฐ Linux

  • 1
    unitedrpms
    unitedrpms
    เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเปƒเบ™ Gitter!
    https://gitter.im/unitedrpms-people/Lobby
    เป€เบ›เบตเบ”เปƒเบŠเป‰ URPMS repository เปƒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™
    เบฅเบฐเบšเบปเบš -
    https://github.com/UnitedRPMs/unitedrpms.github.io/bl...
    เบ”เบฒเบงเป‚เบซเบฅเบ” unitedrpms
  • 2
    เป€เบžเบตเปˆเบกเบซเป‰เบญเบ‡เบชเบฐCเบธเบ” C ++
    เป€เบžเบตเปˆเบกเบซเป‰เบญเบ‡เบชเบฐCเบธเบ” C ++
    Boost เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™ Portable เบŸเบฃเบต
    เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” C++ เบ—เบตเปˆเป„เบ”เป‰เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™เป‚เบ”เบเปเบนเปˆ. เป„เบ”เป‰
    เป€เบ™เบฑเป‰เบ™เปœเบฑเบเปƒเบชเปˆเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆ
    เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ”เบตเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++.
    เป€เบšเบดเปˆเบ‡ http://www.bo...
    เบ”เบฒเบงเป‚เบซเบฅเบ” Boost C++ Libraries
  • 3
    VirtualGL
    VirtualGL
    VirtualGL เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ 3D เบˆเบฒเบ a
    เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Unix/Linux OpenGL เปƒเบชเปˆ a
    GPU เบ‚เป‰เบฒเบ‡เป€เบŠเบตเบšเป€เบงเบตเปเบฅเบฐเปเบ›เบ‡
    rendered เบฎเบนเบš 3D เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบชเบฐโ€‹เบ•โ€‹เบฃเบตเบกโ€‹เบงเบดโ€‹เบ”เบตโ€‹เป‚เบญโ€‹
    เบ—เบตเปˆ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” VirtualGL
  • 4
    libusb
    libusb
    เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰
    เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เป€เบžเบทเปˆเบญโ€‹เบ•เบดเบ”โ€‹เบ•เปเปˆโ€‹เบžเบปเบงโ€‹เบžเบฑเบ™โ€‹เบเบฑเบšโ€‹
    เบญเบธเบ›เบฐเบเบญเบ™ USB. เบœเบนเป‰เบŠเบปเบก: เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบชเบดเป‰เบ™เบชเบธเบ”
    เบœเบนเป‰เปƒเบŠเป‰/เป€เบ”เบฑเบชเบ—เบฑเบญเบš. เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฃเปเบเบฃเบก: C.
    เปเบงเบ”เปเบนเปˆ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” libusb
  • 5
    SWIG
    SWIG
    SWIG เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบžเบฑเบ”เบ—เบฐเบ™เบฒเบŠเบญเบšเปเบง
    เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ C เปเบฅเบฐ
    C ++ เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบซเบฅเบฒเบเบซเบฅเบฒเบเบ‚เบญเบ‡เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡
    เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบก. SWIG เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบš
    เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” SWIG
  • 6
    WooCommerce Nextjs React Theme
    WooCommerce Nextjs React Theme
    React WooCommerce เบซเบปเบงเบ‚เปเป‰, เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบ
    JS เบ•เปเปˆเป„เบ›, Webpack, Babel, Node, เปเบฅเบฐ
    เบ”เปˆเบงเบ™, เปƒเบŠเป‰ GraphQL เปเบฅเบฐ Apollo
    เบฅเบนเบโ€‹เบ„เป‰เบฒ. เบฎเป‰เบฒเบ™ WooCommerce เปƒเบ™ React(
    เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹: เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ•เบฐโ€‹เบžเบฑเบ™ ...
    เบ”เบฒเบงเป‚เบซเบฅเบ” WooCommerce Nextjs React Theme
  • เป€เบžเบตเปˆเบกเป€เบ•เบตเบก ยป

Linux เบ„เบณ เบชเบฑเปˆเบ‡

Ad