Operator <token> ## <token> atau sering juga disebut dengan operator angka ganda, adalah sebuah operator biner yang berfungsi untuk melakukan penggabungan yang digunakan pada makro seperti objek dan makro fungsi.
Dalam istilah definisi makro memungkinkan token yang terpisah untuk digabungkan menjadi satu token, tidak bisa menjadi token pertama atau terakhir.
Operator ini hanya dapat digunakan dalam teks pengganti makro dari arahan #define. Namun, operator ini tidak boleh muncul di awal atau akhir teks pengganti makro. Operand dari operator ## harus berupa nama parameter untuk makro yang sudah ditentukan.
Operator ini dapat juga digantikan oleh argumen makro yang sesuai yang tidak diperluas. Token yang berbatasan langsung dengan operator ## digabungkan untuk membentuk satu token.
Jika hasilnya bukan token yang valid, perilaku tidak ditentukan; jika tidak, token diperluas secara normal. Pengurutan evaluasi operator # dan ## juga tidak ditentukan. Apabila urutannya penting, Anda dapat mengontrol pesanan dengan menggunakan beberapa makro.
Contoh Penggunaan Operator #### ## :
Penggunaan operator ini, dapat di ilustrasikan dalam penggunaan operator stringisasi dan mengimplementasikan token dalam menentukan keluaran program:
C++
// preprocessor_token_pasting.cpp
#include <stdio.h>
#define paster( n ) printf_s( "token" #n " = %d", token##n )
int token9 = 9;
int main()
{
paster(9);
}
Hasil
token9 = 9