address warnings: Non-trivial type declarators in shared declaration