No, you can't, and no they don't.
lock(lk_var) { lock(lk_var2) { var = var2; } }
for(int i=0; (i < 1) && !lk_lock(lk_var); lk_unlock(lk_var), i++) { for(int i=0; (i < 1) && !lk_lock(lk_var2); lk_unlock(lk_var2), i++) { var = var2; } }
for (int i = 0; i < 5; ++i) { for (int i = 0; i < 5; ++i) { printf("hello\n"); } }
No, you can't, and no they don't.
That expands to: You end up with an i scoped inside another i.