A new keyword added with the C23 standard is constexpr. It’s a storage class specifier that sets a constant value. Unlike the original C language qualifier, const, storage declared with the constexpr is truly constant and cannot be altered, as was demonstrated in last week’s Lesson.
Continue reading
Category Archives: Lesson
Constantly Complaining
The C language has an issue with constants. As far as I can tell, three different ways are at your disposal to express a constant: constant expressions, literal constants, and constant types. More variety may be available, which adds to the confusion.
Continue reading
All Those Binary Dates
Only a handful of days of the year have a number format containing only ones and zeros. These “binary dates” are found by examining each day of the year to check for binary digit validity. In last week’s Lesson, I presented code to generate and save each of the year’s 365 dates as a 4-character string. It’s time to check each of them for binary date validity.
Continue reading
Finding a Binary Date
Last week’s post was on 1101, which is a binary number! My inner nerd got so excited, I aimed to write code that locates and outputs all binary dates throughout the calendar year.
Continue reading
Today’s Date is Binary!
You know you’re a nerd when you look at today’s date, November 1st, as 11-01 and then you think, “That’s a binary number!” Yeah, nerd.
Continue reading
Filling the Pointer Pointers with Data
The final step of the pointer storage program is to add data to the various buffers, or “sticks,” where ten integer values are stored. This step involves ugly double-pointer notation. If you can, please review last week’s Lesson to get up to speed on how storage is allocated and how these pointers are managed.
Continue reading
Adding Pointers to Pointers
Expanding an allocated buffer is something you can do with a pointer, but not with an array. This flexibility is why I encourage all C language students to understand and use pointers, though it doesn’t make the concept nay less onery.
Continue reading
The Ever-Expanding Pointer Array
Perhaps the most difficult part of learning C is understanding and coding pointers. Even when you have a grip on things, it helps to keep fresh and practice new and utterly obnoxious ways to play with pointers.
Continue reading
Coding a Better stringcopy() Function
From last week’s Lesson, the task is to code a safer, better version of the strcpy() function. The goals are to check buffer size, report an overflow or underflow (buffer is too big or too small), and potentially confirm whether data is overwritten. Such a program is often used as a test when applying for a C programming job.
Continue reading
Copying Strings
The C language has string manipulation functions, but they’re tepid. In fact, the C23 update includes even more functions to duplicate strings and to stick them together. These actions are simple in other languages, but create such a problem for C that coding a string copying function is often a skill you must demonstrate when applying for a C programming job.
Continue reading