unifdefall - ອອນລາຍໃນຄລາວ

ນີ້ແມ່ນຄໍາສັ່ງ 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



ລ່າສຸດ Linux ແລະ Windows ໂຄງການອອນໄລນ໌