add pragma once macro