| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #include "config.h"
- #include <stdio.h>
- #include <string.h>
- /**
- * structeq - bitwise comparison of structs.
- *
- * This is a replacement for memcmp, which checks the argument types are the
- * same.
- *
- * License: CC0 (Public domain)
- * Author: Rusty Russell <rusty@rustcorp.com.au>
- *
- * Example:
- * #include <ccan/structeq/structeq.h>
- * #include <ccan/build_assert/build_assert.h>
- * #include <assert.h>
- *
- * struct mydata {
- * int start, end;
- * };
- *
- * int main(void)
- * {
- * struct mydata a, b;
- *
- * // No padding in struct, otherwise this doesn't work!
- * BUILD_ASSERT(sizeof(a) == sizeof(a.start) + sizeof(a.end));
- *
- * a.start = 100;
- * a.end = 101;
- *
- * b.start = 100;
- * b.end = 101;
- *
- * // They are equal.
- * assert(structeq(&a, &b));
- *
- * b.end++;
- * // Now they are not.
- * assert(!structeq(&a, &b));
- *
- * return 0;
- * }
- */
- int main(int argc, char *argv[])
- {
- /* Expect exactly one argument */
- if (argc != 2)
- return 1;
- if (strcmp(argv[1], "depends") == 0) {
- return 0;
- }
- return 1;
- }
|