Amazon Best VPN GoSearch

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

Linux ຄຳ ສັ່ງ

Ad




×
ການ​ໂຄ​ສະ​ນາ
?ຊື້ເຄື່ອງ, ຈອງ, ຫຼືຊື້ທີ່ນີ້ — ບໍ່ມີຄ່າໃຊ້ຈ່າຍ, ຊ່ວຍໃຫ້ການບໍລິການຟຣີ.