H adalah nomor kompensasi, mirip dengan kompensasi radius, nilai panjang pahat disimpan di alamat yang ditentukan setelah H.
Saat melakukan kompensasi panjang, pahat harus bergerak pada sumbu z: posisi pahat sebenarnya di bawah perintah yang berbeda, di antaranya pernyataan "G90 G54(XIZ0;" akan menyebabkan kecelakaan serius jika tidak ada Perintah G43 dalam kondisi kompensasi panjang. Secara umum program Kata program selama kompilasi adalah konstan, dan program hanya dapat menggambarkan satu bentuk geometris, sehingga tidak memiliki fleksibilitas dan keserbagunaan. Dalam beberapa kasus, perkakas mesin perlu bertindak sesuai dengan aturan tertentu, seperti dalam siklus pengeboran, pengguna harus dapat menentukan parameter pemotongan sesuai dengan situasi. Hal ini diperlukan agar program umum tidak dapat dicapai. Ketika pengukuran otomatis dilakukan, manusia atau alat mesin harus memproses data pengukuran. Data ini disimpan dalam variabel, dan program umum tidak dapat diproses. Menanggapi situasi ini, alat mesin CNC menyediakan metode pemrograman lain, yaitu pemrograman Makro .
Variabel digunakan dalam program, dan fungsi program dicapai dengan menetapkan dan memproses variabel. Program dengan variabel semacam ini disebut program makro. Format program makro Format program makro sama dengan subprogram, dan M99 digunakan di akhir untuk kembali ke program utama.
