a real storage in rodata for it! (Hopefully, newer gcc will get better
at it...). With "define", you have slight risk of polluting namespace
(#define doesn't allow you to redefine the name in the inner scopes),
-and complex "define" are evaluated each time they uesd, not once
+and complex "define" are evaluated each time they used, not once
at declarations like enums. Also, the preprocessor does _no_ type checking
whatsoever, making it much more error prone.
Then have long options defined:
- static const struct option <applet>_long_options[] = {
- { "list", 0, NULL, 't' },
- { "extract", 0, NULL, 'x' },
- { NULL, 0, NULL, 0 }
- };
+ static const char <applet>_longopts[] ALIGN1 =
+ "list\0" No_argument "t"
+ "extract\0" No_argument "x"
+ ;
And a code block similar to the following near the top of your applet_main()
routine:
char *str_b;
opt_complementary = "cryptic_string";
- applet_long_options = <applet>_long_options; /* if you have them */
+ applet_long_options = <applet>_longopts; /* if you have them */
opt = getopt32(argc, argv, "ab:c", &str_b);
if (opt & 1) {
handle_option_a();