But for business applications or other software above the operating system level, C is a minefield: "Explosive" results await the unwary C programmer's misstep. Here's an example that requires you to pick your way carefully:
if (xcnt < 2) return date = x[0]; time = x[1];
This code appears to guard references to array x by checking the count of its elements first. But a semicolon is missing after the return, so the code really means:
if (xcnt < 2) { return date = x[0]; } time = x[1];
C's "flexibility" lets you freely combine most expressions and statements, such as this assignment expression within a return statement. Unfortunately, this flexibility also means C compilers can't detect many errors caused by simple typos.