2012-08-11 23 views
13

My (tương đối cũ) C++ nghẹn ngào trên this tập tin trong Boost, mà bắt đầu ra như:Tăng cường sử dụng cú pháp chỉ thị tiền xử lý C++ hợp pháp?

# /* Copyright (C) 2001 
# * Housemarque Oy 
# * http://www.housemarque.com 
# * 
# * Distributed under the Boost Software License, Version 1.0. (See 
# * accompanying file LICENSE_1_0.txt or copy at 
# * http://www.boost.org/LICENSE_1_0.txt) 
# */ 
# 

Đây có phải là C thực sự hợp pháp ++? Quy tắc về cú pháp của mã thông báo tiền xử lý là gì?

+0

Ồ không! Đừng nói với tôi bạn sử dụng Turbo C++ quá !! –

+0

@CodyGray: Trời, không! Đó là một trình biên dịch VC cũ. – Mehrdad

+0

Phiên bản nào, VC 4.0? Tôi tò mò tại sao bạn không thể nâng cấp – Viet

Trả lời

22

Vâng, một dòng chỉ chứa # và khoảng trắng được cho phép rõ ràng tiêu chuẩn §16 [cpp]:

kiểm soát dòng:
# include pp-tokens mới dòng
# define định danh replacement- liệt kê dòng mới
# define số nhận dạng lparen định danh danh sách chọn) danh sách thay thế dòng mới
# define định danh lparen ...) thay thế danh sách mới dòng
# define lparen định dạng danh sách , ...) thay thế danh sách mới dòng
# undef nhận dạng mới dòng
# line pp-tokens mới dòng
# error pp-tokens opt dòng mới
# pragma mã thông báo chọn dòng mới
# dòng mới

Lưu ý rằng các chú thích được thay thế bằng khoảng trống ở giai đoạn dịch 3, trước bộ tiền xử lý.

+1

+1. Điều cuối cùng là tất cả những gì tôi đang tìm kiếm, và thực sự trả lời câu hỏi: '# new-line'. – Nawaz

+3

@Nawaz: OP hỏi "Quy tắc về cú pháp của mã thông báo tiền xử lý là gì" vì vậy việc cung cấp một số bối cảnh sẽ không bị tổn thương. – ybungalobill

+0

@Nawaz: Haha hãy xem lịch sử chỉnh sửa trên bài đăng của tôi, nó thật thú vị. :) – Mehrdad

Các vấn đề liên quan