In C you can have external static variables that are viewable every where in the file, while internal static variables are only visible in the function but is persistent
Not anymore. I've seen or heard the results of function local static variables in multithreaded land, and it isn't pretty.