In C language, scope of the static variable through out the file. 
In the following code, function returns the static variable.
int fun(){
    static int i = 10;
    return i;
}
int main() {
    printf("%d\n", fun());
    return 0;
}
And printed output 10.
So, Is returning local static in C undefined behaviour or well-defined?
 
    