From 71eee1204d279fe7590d940a08423e3362609474 Mon Sep 17 00:00:00 2001 From: zlg Date: Thu, 8 Aug 2013 06:35:27 -0500 Subject: Solve Exercise 4-14: Swap Macro Thanks to ##c on Freenode for helping me understand what the text didn't clarify. --- ch4/4-14_swap-macro.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 ch4/4-14_swap-macro.c (limited to 'ch4') diff --git a/ch4/4-14_swap-macro.c b/ch4/4-14_swap-macro.c new file mode 100644 index 0000000..ac2f102 --- /dev/null +++ b/ch4/4-14_swap-macro.c @@ -0,0 +1,30 @@ +#include + +/* The C Programming Language: 2nd Edition + * + * Exercise 4-14: Define a macro swap(t,x,y) that interchanges two arguments + * of type t. (Block structure will help.) + * + * Answer: Macros are read and processed before syntax is, so you can turn + * a macro into shorthand code; more shorthand than functions sometimes. + * + * This macro assumes x and y are of t type. If the types don't match up, + * it'll (probably) break. + */ + +#define swap(t, x, y) {\ + t z;\ + z = x;\ + x = y;\ + y = z;\ +} + +int main() { + int a = 3; + int b = 7; + + printf("a is %d, b is %d\n", a, b); + swap(int, a, b); + printf("Now swap, and... a is %d and b is %d!\n", a, b); + return 0; +} -- cgit v1.2.3-54-g00ecf 8bc7e5b8'>refslogtreecommitdiff
path: root/ch4 (unfollow)
t'>Commit message (Collapse)
AgeCommit message (Collapse)AuthorFilesLines
AuthorFilesLines
2016-11-18Remove settings from helpers.shZe Libertine Gamer1-5/+0
Sourcing them in .bash_profile screws up login if they're set.
2016-11-15Correct phrasing in README.Ze Libertine Gamer1-4/+4
2016-11-13DerpZe Libertine Gamer1-0/+1
2016-11-03Improve error handling in shell scriptsZe Libertine Gamer4-3/+23
2016-10-24Correct run_again, add recursionZe Libertine Gamer1-0/+4
Loops and functions -- oh my, what a useful combination. :)
2016-10-21Add quotes to correct behavior for arglistZe Libertine Gamer1-1/+1
2016-10-14updater.sh: add recursion, error handlingZe Libertine Gamer1-43/+101
2016-10-14Correct pipe-handling behaviorZe Libertine Gamer1-1/+9
2016-10-12Clarify a method to move between platformsZe Libertine Gamer1-2/+5
Also correct a typo.