ນີ້ແມ່ນຄໍາສັ່ງ cproto ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນສະຖານີເຮັດວຽກອອນໄລນ໌ຟຣີຫຼາຍອັນຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
cproto - ສ້າງ prototypes ຟັງຊັນ C ແລະປ່ຽນຄໍານິຍາມຟັງຊັນ
ສະຫຼຸບສັງລວມ
cproto [ ທາງເລືອກ ... ] [ ເອກະສານ ... ]
ລາຍລະອຽດ
Cproto ສ້າງ prototypes ຟັງຊັນສໍາລັບຟັງຊັນທີ່ກໍານົດໄວ້ໃນໄຟລ໌ແຫຼ່ງ C ທີ່ລະບຸ
ກັບຜົນຜະລິດມາດຕະຖານ. ຄໍານິຍາມຟັງຊັນອາດຈະຢູ່ໃນແບບເກົ່າຫຼືແບບ ANSI C.
ທາງເລືອກອື່ນ, cproto ຍັງສົ່ງຜົນການປະກາດສຳລັບຕົວແປທີ່ກຳນົດໄວ້ໃນໄຟລ໌. ຖ້າບໍ່ມີ
ເອກະສານ ການໂຕ້ຖຽງແມ່ນໃຫ້, cproto ອ່ານການປ້ອນຂໍ້ມູນຂອງມັນຈາກວັດສະດຸປ້ອນມາດຕະຖານ.
ໂດຍການໃຫ້ທາງເລືອກແຖວຄໍາສັ່ງ, cproto ຍັງຈະປ່ຽນຄໍານິຍາມຟັງຊັນໃນ
ໄຟລ໌ທີ່ລະບຸໄວ້ຈາກຮູບແບບເກົ່າໄປຫາຮູບແບບ ANSI C. ແຫຼ່ງຕົ້ນສະບັບໄຟລ໌ພ້ອມ
ກັບໄຟລ໌ທີ່ລະບຸໄວ້ໂດຍ
#ລວມເອົາ "ໄຟລ໌"
ຄໍາສັ່ງທີ່ປາກົດຢູ່ໃນລະຫັດແຫຼ່ງຈະຖືກຂຽນທັບດ້ວຍລະຫັດທີ່ຖືກແປງ. ຖ້າ
ບໍ່ມີຊື່ໄຟລ໌ທີ່ໄດ້ຮັບໃນບັນຊີຄໍາສັ່ງ, ຫຼັງຈາກນັ້ນໂຄງການຈະອ່ານລະຫັດແຫຼ່ງຈາກ
ການປ້ອນຂໍ້ມູນມາດຕະຖານ ແລະສົ່ງແຫຼ່ງທີ່ມາທີ່ປ່ຽນເປັນຜົນຜະລິດມາດຕະຖານ.
ຖ້າຄໍາເຫັນໃດໆປາກົດຢູ່ໃນຄໍາປະກາດພາລາມິເຕີສໍາລັບຄໍານິຍາມຟັງຊັນ, ເຊັ່ນ: ໃນ
ຕົວຢ່າງ,
ຫຼັກ (argc, argv)
int argc; /* ຈໍານວນຂອງການໂຕ້ຖຽງ */
char *argv[]; /* ການໂຕ້ຖຽງ */
{
}
ຫຼັງຈາກນັ້ນ, ຄໍານິຍາມຫນ້າທີ່ປ່ຽນໃຈເຫລື້ອມໃສຈະມີແບບຟອມ
int
ຕົ້ນຕໍ (
int argc, /* ຈໍານວນຂອງອາກິວເມັນ */
char *argv[] /* arguments */
)
{
}
ຖ້າບໍ່ດັ່ງນັ້ນ, ຄໍານິຍາມຟັງຊັນທີ່ປ່ຽນໃຈເຫລື້ອມໃສຈະເບິ່ງຄືວ່າ
int
ຫຼັກ (int argc, char *argv[])
{
}
Cproto ທາງເລືອກສາມາດປ່ຽນຄໍານິຍາມຟັງຊັນຈາກຮູບແບບ ANSI ເປັນແບບເກົ່າ.
ໃນໂຫມດນີ້, ໂຄງການຍັງປ່ຽນຕົວປະກາດຟັງຊັນແລະຕົວແບບທີ່ປາກົດ
ອົງການທໍາງານພາຍນອກ. ນີ້ບໍ່ແມ່ນການແປງ ANSI C ເຕັມໄປເປັນ C ແບບເກົ່າ. ໂຄງການ
ບໍ່ມີການປ່ຽນແປງຫຍັງພາຍໃນອົງການຈັດຕັ້ງການທໍາງານ.
Cproto ທາງເລືອກສາມາດສ້າງແຫຼ່ງໃນຮູບແບບ lint-library. ນີ້ແມ່ນເປັນປະໂຫຍດໃນ
ສະພາບແວດລ້ອມທີ່ ຝັກ ຜົນປະໂຫຍດແມ່ນໃຊ້ເພື່ອເສີມການກວດສອບຕົ້ນແບບຂອງທ່ານ
ໂຄງການ.
OPTIONS
-e ອອກຄໍາສໍາຄັນ ພາຍນອກ ຢູ່ທາງຫນ້າຂອງທຸກ prototype ທີ່ສ້າງຂຶ້ນຫຼືການປະກາດວ່າ
ມີຂອບເຂດທົ່ວໂລກ.
-f n ກໍານົດຮູບແບບຂອງ prototypes ການທໍາງານທີ່ສ້າງຂຶ້ນໃນບ່ອນທີ່ n ແມ່ນຕົວເລກຈາກ 0 ຫາ 3.
ຕົວຢ່າງ, ພິຈາລະນາຄໍານິຍາມຂອງຫນ້າທີ່
ຫຼັກ (argc, argv)
int argc;
char *argv[];
{
}
ຖ້າຄ່າແມ່ນ 0, ຫຼັງຈາກນັ້ນບໍ່ມີຕົວແບບທີ່ຖືກສ້າງຂຶ້ນ. ເມື່ອຕັ້ງເປັນ 1, ຜົນຜະລິດແມ່ນ:
int main(/*int argc, char *argv[]*/);
ສໍາລັບມູນຄ່າຂອງ 2, ຜົນຜະລິດມີຮູບແບບ:
int main(int /*argc*/, char */*argv*/[]);
ຄ່າເລີ່ມຕົ້ນແມ່ນ 3. ມັນຜະລິດຕົ້ນແບບຟັງຊັນເຕັມ:
int main(int argc, char *argv[]);
-l ສ້າງຂໍ້ຄວາມສໍາລັບ lint-library (ແທນທີ່ "-f" option) ຜົນຜະລິດປະກອບມີ
ຄໍາເຫັນ
/* ຫໍສະໝຸດ */
ຄຳເຫັນພິເສດ LINT_EXTERN ແລະ LINT_PREPRO (a la "VARARGS") ເປີດຕາມລຳດັບ
ທາງເລືອກ "-x" ແລະສໍາເນົາຂໍ້ຄວາມຄໍາຄິດເຫັນກັບຜົນໄດ້ຮັບ (ສໍາລັບການ preprocessing ໃນ ຝັກ).
ໃຊ້ຄໍາເຫັນ
/* LINT_EXTERN2 */
ເພື່ອປະກອບມີ externs ທີ່ກໍານົດໄວ້ໃນລະດັບທໍາອິດຂອງ include-files. ໃຊ້ຄໍາເຫັນ
/* LINT_SHADOWED */
ສາເຫດ cproto ເພື່ອວາງຄໍາສັ່ງ "#undef" ກ່ອນທີ່ຈະປະກາດແຕ່ລະຫ້ອງສະຫມຸດ lint
(ie, ເພື່ອຫຼີກເວັ້ນການຂັດແຍ້ງກັບ macro ທີ່ເກີດຂຶ້ນທີ່ຈະຕ້ອງມີຊື່ດຽວກັນກັບ
ຫນ້າທີ່, ດັ່ງນັ້ນຈຶ່ງເຮັດໃຫ້ເກີດຄວາມຜິດພາດ syntax).
ກະລຸນາຮັບຊາບວ່າຄຳເຫັນພິເສດເຫຼົ່ານີ້ບໍ່ຖືກຮອງຮັບພາຍໃຕ້ VAX/VMS, ເພາະວ່າບໍ່ມີ
ທຽບເທົ່າກັບຕົວເລືອກ "-C" ຂອງ cpp ກັບ VAX-C.
-c ຄໍາຄິດຄໍາເຫັນພາລາມິເຕີໃນ prototypes ທີ່ສ້າງຂຶ້ນໂດຍຕົວເລືອກ -f1 ແລະ -f2 ແມ່ນ
ຖືກລະເວັ້ນໂດຍຄ່າເລີ່ມຕົ້ນ. ໃຊ້ຕົວເລືອກນີ້ເພື່ອເປີດໃຊ້ການສະແດງຄວາມຄິດເຫັນເຫຼົ່ານີ້.
-m ໃສ່ມະຫາພາກອ້ອມຮອບລາຍຊື່ພາຣາມິເຕີຂອງທຸກໆຕົ້ນແບບທີ່ສ້າງຂຶ້ນ. ຍົກຕົວຢ່າງ:
int ຕົ້ນຕໍ P_(( int argc, char *argv[]));
-M ຊື່
ຕັ້ງຊື່ຂອງມະຫາພາກທີ່ໃຊ້ເພື່ອອ້ອມຮອບລາຍຊື່ຕົວກໍານົດການຕົ້ນແບບເມື່ອທາງເລືອກ -m
ຖືກເລືອກ. ຄ່າເລີ່ມຕົ້ນແມ່ນ "P_".
-d ຍົກເລີກຄຳນິຍາມຂອງມະຫາພາກຕົ້ນແບບທີ່ໃຊ້ໂດຍຕົວເລືອກ -m.
-o ເອກະສານ
ລະບຸຊື່ຂອງໄຟລ໌ຜົນຜະລິດ (ຄ່າເລີ່ມຕົ້ນ: ຜົນຜະລິດມາດຕະຖານ).
-O ເອກະສານ
ລະບຸຊື່ຂອງໄຟລ໌ຂໍ້ຜິດພາດ (ຄ່າເລີ່ມຕົ້ນ: ຂໍ້ຜິດພາດມາດຕະຖານ).
-p ປິດການສົ່ງເສີມພາລາມິເຕີທີ່ເປັນທາງການໃນນິຍາມຟັງຊັນແບບເກົ່າ. ໂດຍ
ຄ່າເລີ່ມຕົ້ນ, ພາລາມິເຕີຂອງປະເພດ char or ສັ້ນ ໃນແບບເກົ່າຄໍານິຍາມຟັງຊັນແມ່ນ
ສົ່ງເສີມການພິມ int ໃນຕົວແບບຟັງຊັນ ຫຼືຟັງຊັນ ANSI C ທີ່ປ່ຽນແລ້ວ
ຄໍານິຍາມ. ພາລາມິເຕີຂອງປະເພດ float ໄດ້ຮັບການສົ່ງເສີມການ double ຄືກັນ.
-q ຫ້າມສົ່ງຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດໃນເວລາທີ່ໂຄງການບໍ່ສາມາດອ່ານໄຟລ໌ທີ່ລະບຸໄວ້ໃນ
an #include ທິດທາງ.
-s ໂດຍຕົວຢ່າງ, cproto ພຽງແຕ່ສ້າງການປະກາດສໍາລັບຫນ້າທີ່ແລະຕົວແປທີ່ມີ
ຂອບເຂດທົ່ວໂລກ. ຕົວເລືອກນີ້ຈະອອກ ໄຟຟ້າສະຖິດ ການປະກາດເຊັ່ນດຽວກັນ.
-S ສົ່ງອອກພຽງແຕ່ການປະກາດສະຖິດ.
-i ໂດຍຕົວຢ່າງ, cproto ພຽງແຕ່ສ້າງການປະກາດສໍາລັບຫນ້າທີ່ແລະຕົວແປທີ່ມີ
ຂອບເຂດທົ່ວໂລກ. ຕົວເລືອກນີ້ຈະອອກ inline ການປະກາດເຊັ່ນດຽວກັນ.
-T ສຳເນົາຄຳນິຍາມປະເພດຈາກແຕ່ລະໄຟລ໌. (ຄໍານິຍາມໃນໄຟລ໌ລວມແມ່ນຄັດລອກ,
ບໍ່ຄືກັບຕົວເລືອກ "-l").
-v ນອກຈາກນີ້ຍັງສົ່ງອອກການປະກາດສໍາລັບຕົວແປທີ່ກໍານົດໄວ້ໃນແຫຼ່ງຂໍ້ມູນ.
-x ທາງເລືອກນີ້ເຮັດໃຫ້ຂັ້ນຕອນແລະຕົວແປທີ່ຖືກປະກາດວ່າ "extern" ເປັນ
ລວມຢູ່ໃນຜົນຜະລິດ.
-X ລະດັບ
ຕົວເລືອກນີ້ຈຳກັດລະດັບລວມໄຟລ໌ທີ່ການປະກາດຖືກແຍກອອກໂດຍ
ການກວດສອບຜົນຜະລິດ preprocessor.
-a ປ່ຽນຄຳນິຍາມຟັງຊັນຈາກຮູບແບບເກົ່າໄປເປັນຮູບແບບ ANSI C.
-t ປ່ຽນຄຳນິຍາມຟັງຊັນຈາກຮູບແບບ ANSI C ມາເປັນແບບດັ້ງເດີມ.
-b ຂຽນຫົວນິຍາມຟັງຊັນຄືນໃໝ່ເພື່ອປະກອບມີທັງຮູບແບບເກົ່າ ແລະຮູບແບບໃໝ່
ການປະກາດທີ່ແຍກອອກໂດຍຄໍາສັ່ງການລວບລວມເງື່ອນໄຂ. ສໍາລັບຕົວຢ່າງ, ໄດ້
ໂຄງການສາມາດສ້າງຄໍານິຍາມຫນ້າທີ່ນີ້:
#ifdef ANSI_FUNC
int
ຫຼັກ (int argc, char *argv[])
#ອື່ນ
int
ຫຼັກ (argc, argv)
int argc;
char *argv[]
#ສຸດທ້າຍ
{
}
-B directive
ກໍານົດຄໍາສັ່ງການລວບລວມເງື່ອນໄຂກັບຜົນໄດ້ຮັບໃນຕອນເລີ່ມຕົ້ນຂອງຫນ້າທີ່
ຄໍານິຍາມທີ່ສ້າງຂຶ້ນໂດຍທາງເລືອກ -b. ຄ່າເລີ່ມຕົ້ນແມ່ນ
#ifdef ANSI_FUNC
-P ແມ່ແບບ
-F ແມ່ແບບ
-C ແມ່ແບບ
ກໍານົດຮູບແບບຜົນຜະລິດສໍາລັບ prototypes ທີ່ສ້າງຂຶ້ນ, ຄໍານິຍາມຟັງຊັນ, ແລະຟັງຊັນ
ຄໍານິຍາມທີ່ມີຄໍາຄິດຄໍາເຫັນພາລາມິເຕີຕາມລໍາດັບ. ຮູບແບບແມ່ນກໍານົດໂດຍ a
ແມ່ແບບໃນຮູບແບບ
"int f (a, b)"
ແຕ່ເຈົ້າອາດຈະປ່ຽນຊ່ອງຫວ່າງແຕ່ລະອັນໃນສະຕຣິງນີ້ດ້ວຍຈຳນວນຊ່ອງຫວ່າງໃດກໍໄດ້
ຕົວລະຄອນ. ສໍາລັບຕົວຢ່າງ, ທາງເລືອກ
-F"int f(\n\ta,\n\tb\n\t)"
ຈະຜະລິດ
int main(
int argc,
char *argv[]
)
-D ຊື່[=value]
ຕົວເລືອກນີ້ຖືກສົ່ງຜ່ານໄປຫາຕົວປະມວນຜົນກ່ອນແລະຖືກນໍາໃຊ້ເພື່ອກໍານົດສັນຍາລັກສໍາລັບ
ໃຊ້ກັບເງື່ອນໄຂເຊັ່ນ #ifdef.
-U ຊື່
ຕົວເລືອກນີ້ຖືກສົ່ງຜ່ານໄປຫາໂປເຊດເຊີ preprocessor ແລະຖືກນໍາໃຊ້ເພື່ອເອົາໃດໆ
ຄໍານິຍາມຂອງສັນຍາລັກນີ້.
-I ລະບົບ
ຕົວເລືອກນີ້ຖືກສົ່ງຜ່ານກັບໂປເຊດເຊີ preprocessor ແລະຖືກນໍາໃຊ້ເພື່ອກໍານົດ a
ໄດເລກະທໍລີເພື່ອຊອກຫາໄຟລ໌ທີ່ອ້າງອີງດ້ວຍ #ລວມທັງ.
-E cpp ທໍ່ໄຟລ໌ປ້ອນຂໍ້ມູນຜ່ານຄໍາສັ່ງ C preprocessor ທີ່ລະບຸໄວ້ໃນເວລາສ້າງ
ຕົ້ນແບບ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ໂປຣແກຣມໃຊ້ /lib/cpp.
-E 0 ຢ່າແລ່ນ C preprocessor.
-V ພິມຂໍ້ມູນສະບັບ.
ENVIRONMENT
ສະພາບແວດລ້ອມທີ່ປ່ຽນແປງໄດ້ CPROTO ຖືກສະແກນສໍາລັບບັນຊີລາຍຊື່ຂອງທາງເລືອກໃນຮູບແບບດຽວກັນກັບ
ຕົວເລືອກແຖວຄໍາສັ່ງ. ທາງເລືອກທີ່ໃຫ້ຢູ່ໃນເສັ້ນຄໍາສັ່ງ override ໃດທີ່ສອດຄ້ອງກັນ
ທາງເລືອກສະພາບແວດລ້ອມ.
ໃຊ້ cproto ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net
