ນີ້ແມ່ນຄໍາສັ່ງ unifdefall ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
unifdef, unifdefall — ເອົາ preprocessor conditionals ອອກຈາກລະຫັດ
ສະຫຼຸບສັງລວມ
unifdef [-bBcdehKkmnsStV] [-Iເສັ້ນທາງ] [-[i]Dຊິມ[=h]] [-[i]Uຊິມ] ... [-f ຂະບວນແຫ່] [-x {012}]
[-M backext] [-o outfile] [infile ...]
unifdefall [-Iເສັ້ນທາງ] ... ເອກະສານ
ລາຍລະອຽດ
ໄດ້ unifdef ຜົນປະໂຫຍດເລືອກຂະບວນການຕາມເງື່ອນໄຂ cpp(1) ຄໍາແນະນໍາ. ມັນເອົາອອກຈາກ a
ຍື່ນທັງຄໍາແນະນໍາແລະຂໍ້ຄວາມເພີ່ມເຕີມທີ່ພວກເຂົາລະບຸຄວນຈະຖືກໂຍກຍ້າຍ, ໃນຂະນະທີ່
ຖ້າບໍ່ດັ່ງນັ້ນປ່ອຍໃຫ້ໄຟລ໌ຢູ່ຄົນດຽວ.
ໄດ້ unifdef ຜົນປະໂຫຍດປະຕິບັດກ່ຽວກັບ # ຖ້າ, #ifdef, #ifndef, #ເອລີຟ, #ອື່ນ, ແລະ #ສຸດທ້າຍ ສາຍ, ການນໍາໃຊ້
ມະຫາພາກທີ່ລະບຸໄວ້ໃນ -D ແລະ -U ຕົວເລືອກແຖວຄໍາສັ່ງຫຼືໃນ -f ໄຟລ໌ຄໍານິຍາມ. ຄຳສັ່ງ
ໄດ້ຖືກປະມວນຜົນຖ້າຫາກວ່າສະເພາະມະຫາພາກແມ່ນພຽງພໍທີ່ຈະສະຫນອງມູນຄ່າທີ່ແນ່ນອນສໍາລັບມັນ
ຄວບຄຸມການສະແດງອອກ. ຖ້າຜົນໄດ້ຮັບແມ່ນບໍ່ຖືກຕ້ອງ, ຄໍາສັ່ງແລະເສັ້ນຕໍ່ໄປນີ້ພາຍໃຕ້ມັນ
ການຄວບຄຸມຖືກໂຍກຍ້າຍ. ຖ້າຜົນໄດ້ຮັບແມ່ນຄວາມຈິງ, ພຽງແຕ່ຄໍາແນະນໍາທີ່ຖືກໂຍກຍ້າຍ. ອັນ #ifdef or
#ifndef ຄໍາສັ່ງແມ່ນຜ່ານບໍ່ປ່ຽນແປງຖ້າມະຫາພາກການຄວບຄຸມຂອງມັນບໍ່ໄດ້ຖືກລະບຸ.
ໃດ # ຖ້າ or #ເອລີຟ ຄວບຄຸມການສະແດງອອກທີ່ມີຄ່າທີ່ບໍ່ຮູ້ຈັກຫຼືນັ້ນ unifdef ບໍ່ສາມາດວິເຄາະໄດ້
ແມ່ນຜ່ານບໍ່ປ່ຽນແປງ. ໂດຍຄ່າເລີ່ມຕົ້ນ, unifdef ບໍ່ສົນໃຈ # ຖ້າ ແລະ #ເອລີຟ ສາຍຄົງທີ່
ສະແດງອອກ; ມັນສາມາດບອກໄດ້ທີ່ຈະປຸງແຕ່ງໃຫ້ເຂົາເຈົ້າໂດຍການລະບຸ -k ທຸງຢູ່ໃນເສັ້ນຄໍາສັ່ງ.
ມັນເຂົ້າໃຈຊຸດຍ່ອຍທີ່ໃຊ້ທົ່ວໄປຂອງ syntax ການສະແດງອອກສໍາລັບ # ຖ້າ ແລະ #ເອລີຟ ສາຍ:
integer constant, ຄ່າ integer ຂອງ macros ກໍານົດຢູ່ໃນເສັ້ນຄໍາສັ່ງ, the ກໍານົດໄວ້()
ຜູ້ປະກອບການ, ຜູ້ປະກອບການ !, <, >, <=, >=, ==, !=, &&, ||, ແລະການສະແດງອອກໃນວົງເລັບ. ກ
ປະເພດຂອງການປະເມີນຜົນ "ວົງຈອນສັ້ນ" ແມ່ນໃຊ້ສໍາລັບການ && operator: ຖ້າ operand ແມ່ນ
ແນ່ນອນ false ຫຼັງຈາກນັ້ນຜົນໄດ້ຮັບແມ່ນບໍ່ຖືກຕ້ອງ, ເຖິງແມ່ນວ່າມູນຄ່າຂອງ operand ອື່ນແມ່ນ
ບໍ່ຮູ້ຈັກ. ເຊັ່ນດຽວກັນ, ຖ້າຫາກວ່າທັງສອງ operand ຂອງ || ແມ່ນແນ່ນອນຫຼັງຈາກນັ້ນຜົນໄດ້ຮັບແມ່ນຄວາມຈິງ.
ເມື່ອປະເມີນການສະແດງອອກ, unifdef ບໍ່ໄດ້ຂະຫຍາຍມະຫາພາກກ່ອນ. ຄ່າຂອງມະຫາພາກ
ຕ້ອງເປັນຕົວເລກທີ່ງ່າຍດາຍ, ບໍ່ແມ່ນການສະແດງອອກ. ຮູບແບບຈໍາກັດຂອງ indirection ແມ່ນອະນຸຍາດໃຫ້, ບ່ອນທີ່
ຄ່າມະຫາພາກອັນໜຶ່ງແມ່ນຊື່ຂອງອີກອັນໜຶ່ງ.
ໃນກໍລະນີຫຼາຍທີ່ສຸດ, unifdef ບໍ່ໄດ້ຈໍາແນກລະຫວ່າງ macro ຄ້າຍຄືວັດຖຸ (ໂດຍບໍ່ມີການໂຕ້ຖຽງ)
ແລະ macros ຄ້າຍຄືຟັງຊັນ (ທີ່ມີການໂຕ້ຖຽງ). ການເອີ້ນໃຊ້ມະຫາພາກຄ້າຍຄືຟັງຊັນສາມາດປາກົດຢູ່ໃນ
# ຖ້າ ແລະ #ເອລີຟ ຄວບຄຸມການສະແດງອອກ. ຖ້າ macro ບໍ່ໄດ້ຖືກກໍານົດຢ່າງຊັດເຈນ, ຫຼືຖືກກໍານົດ
ກັບ -D ທຸງຢູ່ໃນເສັ້ນຄໍາສັ່ງ, ຫຼືດ້ວຍ #ກໍານົດ ຢູ່ໃນ -f ໄຟລ໌ຄໍານິຍາມ, ຂອງມັນ
ການໂຕ້ຖຽງຖືກລະເລີຍ. ຖ້າ macro ບໍ່ໄດ້ກໍານົດຢ່າງຊັດເຈນຢູ່ໃນເສັ້ນຄໍາສັ່ງກັບ the -U
ທຸງ, ຫຼືກັບ #ສຸດຍອດ ຢູ່ໃນ -f ໄຟລ໌ຄໍານິຍາມ, ມັນອາດຈະບໍ່ມີການໂຕ້ຖຽງໃດໆນັບຕັ້ງແຕ່ນີ້
ນໍາໄປສູ່ຄວາມຜິດພາດ syntax.
ໄດ້ unifdef utility ເຂົ້າໃຈພຽງແຕ່ພຽງພໍກ່ຽວກັບ C ທີ່ຈະຮູ້ວ່າໃນເວລາທີ່ຫນຶ່ງຂອງຄໍາສັ່ງແມ່ນ
inactive ເນື່ອງຈາກວ່າມັນຢູ່ໃນຄໍາຄິດເຫັນ, ຫຼືໄດ້ຮັບຜົນກະທົບໂດຍ backslash-continued ເສັ້ນ. ມັນ
ຈຸດຄໍາສັ່ງ preprocessor ທີ່ມີຮູບແບບຜິດປົກກະຕິແລະຮູ້ເວລາທີ່ຮູບແບບແປກເກີນໄປສໍາລັບ
ມັນເພື່ອຈັດການ.
script ເອີ້ນວ່າ unifdefall ສາມາດນໍາໃຊ້ເພື່ອເອົາເງື່ອນໄຂທັງຫມົດ cpp(1) ຄໍາສັ່ງຈາກ ກ
ໄຟລ໌. ມັນໃຊ້ unifdef -s ແລະ cpp -dM ເພື່ອໃຫ້ໄດ້ຮັບບັນຊີລາຍຊື່ຂອງ macro ຄວບຄຸມທັງຫມົດແລະຂອງເຂົາເຈົ້າ
ຄໍານິຍາມ (ຫຼືຂາດມັນ), ຫຼັງຈາກນັ້ນ invokes unifdef ດ້ວຍການໂຕ້ຖຽງທີ່ເຫມາະສົມເພື່ອດໍາເນີນການ
ໄຟລ໌.
OPTIONS
-Dຊິມ=h
ລະບຸວ່າ macro ຖືກກໍານົດເປັນຄ່າທີ່ລະບຸ.
-Dຊິມ ລະບຸວ່າ macro ຖືກກໍານົດເປັນຄ່າ 1.
-Uຊິມ ລະບຸວ່າມະຫາພາກແມ່ນບໍ່ໄດ້ກໍານົດ.
ຖ້າມະຫາພາກດຽວກັນປາກົດຢູ່ໃນຫຼາຍກວ່າຫນຶ່ງ argument, ການປະກົດຕົວສຸດທ້າຍຄອບງໍາ.
- ໄອດີຊິມ[=h]
-iUຊິມ ສະຕຣິງ C, ຄຳເຫັນ, ແລະການຕໍ່ສາຍແມ່ນຖືກລະເລີຍພາຍໃນ #ifdef ແລະ #ifndef
ບລັອກທີ່ຄວບຄຸມໂດຍມະຫາພາກທີ່ລະບຸໄວ້ກັບຕົວເລືອກເຫຼົ່ານີ້.
-f ຂະບວນແຫ່
ໄຟລ໌ ຂະບວນແຫ່ ປະກອບດ້ວຍ #ກໍານົດ ແລະ #ສຸດຍອດ preprocessor ຄໍາສັ່ງ, ທີ່ມີ
ຜົນກະທົບດຽວກັນກັບທີ່ສອດຄ້ອງກັນ -D ແລະ -U ການໂຕ້ຖຽງແຖວຄໍາສັ່ງ. ທ່ານສາມາດມີ
ຫຼາຍ -f ການໂຕ້ຖຽງແລະປະສົມໃຫ້ເຂົາເຈົ້າ -D ແລະ -U ການໂຕ້ຖຽງ; ແທນທີ່ຕົວເລືອກຕໍ່ມາ
ກ່ອນຫນ້ານີ້.
ແຕ່ລະຄໍາສັ່ງຕ້ອງຢູ່ໃນເສັ້ນດຽວ. ຄໍານິຍາມມະຫາພາກຄ້າຍຄືວັດຖຸ (ບໍ່ມີ
arguments) ຖືກຕັ້ງເປັນຄ່າທີ່ໃຫ້. ຄໍານິຍາມທີ່ຄ້າຍຄືກັບຟັງຊັນມະຫາພາກ (ກັບ
arguments) ຖືກປະຕິບັດຄືກັບວ່າພວກເຂົາຖືກຕັ້ງເປັນ 1.
-b ແທນທີ່ເສັ້ນທີ່ຖືກລຶບອອກດ້ວຍເສັ້ນເປົ່າແທນການລຶບພວກມັນ. ສະເພາະເຊິ່ງກັນແລະກັນ
ກັບ -B ທາງເລືອກ.
-B ບີບອັດເສັ້ນຫວ່າງໄວ້ອ້ອມໆພາກສ່ວນທີ່ຖືກລົບ. ສະເພາະເຊິ່ງກັນແລະກັນກັບ -b
ທາງເລືອກ.
-c ຕື່ມ, ie, ສາຍທີ່ຈະໄດ້ຖືກໂຍກຍ້າຍອອກຫຼືເປົ່າຫວ່າງໄດ້ຖືກເກັບຮັກສາໄວ້ແລະ
ກົງກັນຂ້າມ.
-d ເປີດການພິມຂໍ້ຄວາມດີບັກ.
-e ໂດຍຕົວຢ່າງ, unifdef ຈະລາຍງານຂໍ້ຜິດພາດຖ້າມັນຕ້ອງການເອົາຕົວປະມວນຜົນກ່ອນອອກ
ຄໍາສັ່ງທີ່ກວມເອົາຫຼາຍກວ່າຫນຶ່ງແຖວ, ຕົວຢ່າງ, ຖ້າມັນມີຄໍາເຫັນຫຼາຍແຖວ
ແຂວນປາຍມືຂວາຂອງມັນ. ໄດ້ -e ທຸງເຮັດໃຫ້ມັນບໍ່ສົນໃຈເສັ້ນແທນ.
-h ພິມຊ່ວຍ.
-Iເສັ້ນທາງ ລະບຸວ່າ unifdefall ສະຖານທີ່ເພີ່ມເຕີມເພື່ອຊອກຫາ #include ໄຟລ໌. ທາງເລືອກນີ້
ຖືກລະເລີຍໂດຍ unifdef ສໍາລັບຄວາມເຂົ້າກັນໄດ້ກັບ cpp(1) ແລະເຮັດໃຫ້ງ່າຍດາຍ
ການປະຕິບັດ unifdefall.
-K ສະເຫມີໃຫ້ການປິ່ນປົວຜົນໄດ້ຮັບຂອງ && ແລະ || operators ເປັນທີ່ບໍ່ຮູ້ຈັກຖ້າຫາກວ່າທັງສອງ operand ແມ່ນ
ທີ່ບໍ່ຮູ້ຈັກ, ແທນທີ່ຈະວົງຈອນສັ້ນເມື່ອຕົວປະຕິບັດການທີ່ບໍ່ຮູ້ຈັກບໍ່ສາມາດສົ່ງຜົນກະທົບຕໍ່ຜົນໄດ້ຮັບ.
ທາງເລືອກນີ້ແມ່ນສໍາລັບການເຂົ້າກັນໄດ້ກັບສະບັບເກົ່າຂອງ unifdef.
-k ຂະບວນການ # ຖ້າ ແລະ #ເອລີຟ ເສັ້ນທີ່ມີການສະແດງອອກຄົງທີ່. ໂດຍຄ່າເລີ່ມຕົ້ນ, ພາກສ່ວນ
ຄວບຄຸມໂດຍສາຍດັ່ງກ່າວຖືກຜ່ານບໍ່ປ່ຽນແປງເພາະວ່າພວກມັນມັກຈະເລີ່ມຕົ້ນ
"#if 0" ແລະຖືກໃຊ້ເປັນປະເພດຂອງຄໍາຄິດຄໍາເຫັນເພື່ອແຕ້ມຮູບການພັດທະນາໃນອະນາຄົດຫຼືອະດີດ.
ມັນຈະເປັນການຫຍາບຄາຍທີ່ຈະລອກເອົາພວກມັນອອກ, ຄືກັບວ່າມັນຈະເປັນຄວາມຄິດເຫັນປົກກະຕິ.
-m ແກ້ໄຂໄຟລ໌ປ້ອນຂໍ້ມູນໜຶ່ງ ຫຼືຫຼາຍກວ່ານັ້ນຢູ່ໃນສະຖານທີ່.
-M backext
ແກ້ໄຂໄຟລ໌ທີ່ປ້ອນເຂົ້າໃນສະຖານທີ່, ແລະຮັກສາການສໍາຮອງຂອງໄຟລ໌ຕົ້ນສະບັບໂດຍການຕໍ່ທ້າຍ
backext ໃສ່ຊື່ໄຟລ໌.
-n ເພີ່ມຄໍາສັ່ງ #line ໃຫ້ກັບຜົນໄດ້ຮັບຕາມເສັ້ນທີ່ຖືກລົບ, ດັ່ງນັ້ນຄວາມຜິດພາດ
ຜະລິດໃນເວລາທີ່ລວບລວມໄຟລ໌ຜົນຜະລິດກົງກັນກັບຕົວເລກແຖວໃນການປ້ອນຂໍ້ມູນ
ຍື່ນ.
-o outfile
ຂຽນຜົນໄດ້ຮັບໃສ່ໄຟລ໌ outfile ແທນທີ່ຈະເປັນຜົນຜະລິດມາດຕະຖານໃນເວລາປະມວນຜົນ a
ໄຟລ໌ດຽວ.
-s ແທນທີ່ຈະປະມວນຜົນໄຟລ໌ປ້ອນຂໍ້ມູນຕາມປົກກະຕິ, ທາງເລືອກນີ້ເຮັດໃຫ້ເກີດ unifdef ຜະລິດຕະພັນ
ບັນຊີລາຍຊື່ຂອງມະຫາພາກທີ່ຖືກນໍາໃຊ້ໃນການສະແດງອອກການຄວບຄຸມຄໍາສັ່ງ preprocessor.
-S ເຊັ່ນດຽວກັນກັບ -s ທາງເລືອກ, ແຕ່ຄວາມເລິກຂອງຮັງຂອງແຕ່ລະມະຫາພາກຍັງຖືກພິມອອກ. ນີ້ແມ່ນ
ເປັນປະໂຫຍດສໍາລັບການເຮັດວຽກອອກຈໍານວນຂອງການປະສົມທີ່ເປັນໄປໄດ້ຂອງ interdependent
ມະຫາພາກທີ່ກຳນົດ/ບໍ່ໄດ້ກຳນົດ.
-t ປິດການນຳໃຊ້ການແຍກວິເຄາະສຳລັບສະຕຣິງ C, ຄຳເຫັນ, ແລະການຕໍ່ແຖວ, ເຊິ່ງເປັນປະໂຫຍດ
ສໍາລັບຂໍ້ຄວາມທໍາມະດາ. ນີ້ແມ່ນສະບັບຜ້າຫົ່ມຂອງ - ໄອດີ ແລະ -iU ທຸງ.
-V ພິມລາຍລະອຽດສະບັບ.
-x {012}
ຕັ້ງໂໝດສະຖານະອອກເປັນສູນ, ໜຶ່ງ ຫຼືສອງ. ເບິ່ງ ອອກ STATUS ພາກສ່ວນຂ້າງລຸ່ມນີ້ສໍາລັບການ
ລາຍລະອຽດ.
ໄດ້ unifdef ຜົນປະໂຫຍດໃຊ້ເວລາການປ້ອນຂໍ້ມູນຂອງມັນຈາກ stdin ຖ້າບໍ່ມີ ເອກະສານ ການໂຕ້ຖຽງ. ເຈົ້າຕ້ອງໃຊ້
ໄດ້ -m or -M ທາງເລືອກຖ້າຫາກວ່າມີຫຼາຍໄຟລ໌ປ້ອນຂໍ້ມູນ. ທ່ານສາມາດລະບຸ inut ຈາກ stdin ຫຼື
output ເປັນ stdout ດ້ວຍ '-'.
ໄດ້ unifdef ຜົນປະໂຫຍດເຮັດວຽກໄດ້ດີກັບ -Dຊິມ ທາງເລືອກຂອງ diff(1).
ອອກ STATUS
ໃນການນໍາໃຊ້ປົກກະຕິ unifdef ສະຖານະການອອກຂອງຜົນປະໂຫຍດແມ່ນຂຶ້ນກັບຮູບແບບທີ່ກໍານົດໄວ້ໂດຍການນໍາໃຊ້ -x
ທາງເລືອກ.
ຖ້າຮູບແບບການອອກແມ່ນສູນ (ຄ່າເລີ່ມຕົ້ນ) ຫຼັງຈາກນັ້ນ unifdef ອອກດ້ວຍສະຖານະ 0 ຖ້າຜົນໄດ້ຮັບແມ່ນ an
ສໍາເນົາທີ່ແນ່ນອນຂອງການປ້ອນຂໍ້ມູນ, ຫຼືກັບສະຖານະການ 1 ຖ້າຫາກວ່າຜົນຜະລິດແຕກຕ່າງກັນ.
ຖ້າຮູບແບບການອອກແມ່ນຫນຶ່ງ, unifdef ອອກດ້ວຍສະຖານະ 1 ຖ້າຜົນຜະລິດບໍ່ຖືກແກ້ໄຂ ຫຼື 0 ຖ້າມັນ
ແຕກຕ່າງກັນ.
ຖ້າຮູບແບບອອກແມ່ນສອງ, unifdef ອອກດ້ວຍສະຖານະສູນໃນທັງສອງກໍລະນີ.
ໃນທຸກຮູບແບບການອອກ, unifdef ອອກຈາກສະຖານະ 2 ຖ້າມີຂໍ້ຜິດພາດ.
ສະຖານະການອອກແມ່ນ 0 ຖ້າ -h or -V ທາງເລືອກແຖວຄໍາສັ່ງແມ່ນໃຫ້.
ທິດສະດີວິທະຍາ
ລະດັບການຮັງຫຼາຍເກີນໄປ.
ບໍ່ ເໝາະ ສົມ #ເອລີຟ, #ອື່ນ or #ສຸດທ້າຍ.
Obfuscated preprocessor ສາຍຄວບຄຸມ.
EOF ກ່ອນໄວອັນຄວນ (ດ້ວຍຕົວເລກແຖວຂອງ unterminated ຫຼ້າສຸດ # ຖ້າ).
EOF ໃນຄໍາເຫັນ.
ໃຊ້ unifdefall ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net