Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Phải viết macro như thế nào

  1. #1
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    472

    Mặc định Phải viết macro như thế nào

    Mình có code sau
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. #define N 8
    5. void echo(TYPE n)
    6. {
    7.     cout<<n<<"\n"; 
    8. }
    9. #undef N
    10. #define N 16
    11. void echo(TYPE n)
    12. {
    13.     cout<<n<<"\n"; 
    14. }
    15. #undef N
    16. #define N 32
    17. void echo(TYPE n)
    18. {
    19.     cout<<n<<"\n"; 
    20. }
    Mình phải code macro TYPE như thế nào để có kết quả là
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. void echo(char n)
    5. {
    6.     cout<<n<<"\n"; 
    7. }
    8. void echo(short n)
    9. {
    10.     cout<<n<<"\n"; 
    11. }
    12. void echo(int n)
    13. {
    14.     cout<<n<<"\n"; 
    15. }
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi khoaph : 14-02-2020 lúc 07:05 PM.

  2. #2
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    472

    Có hướng làm rồi
    "char", "short", "int" không có qui luật thì sửa nó thành có quy luật
    sửa thành "_int8", "_int16", "_int32" chẳng hạn
    Đang kiểm tra

    - - - Nội dung đã được cập nhật ngày 15-02-2020 lúc 03:39 PM - - -

    Làm được rồi
    C++ Code:
    1. #include <iostream>
    2. using namespace std;
    3. #define CONCAT2(x,y) CONCAT(x,y)
    4. #define CONCAT(x,y) x##y
    5. #define STR2(x) STR(x)
    6. #define STR(x) #x
    7. #define TYPE CONCAT2(_int,N)
    8. #define STYPE STR2(TYPE)
    9. #define _int8 char
    10. #define _int16 short
    11. #define _int32 int
    12.  
    13. #define N 8
    14. void echo(TYPE n)
    15. {
    16.     cout<<STYPE<<":"<<N<<"\n";
    17. }
    18. #undef N
    19. #define N 16
    20. void echo(TYPE n)
    21. {
    22.     cout<<STYPE<<":"<<N<<"\n";
    23. }
    24. #undef N
    25. #define N 32
    26. void echo(TYPE n)
    27. {
    28.     cout<<STYPE<<":"<<N<<"\n";
    29. }
    30.  
    31.  
    32. int main(int argc, char *argv[])
    33. {
    34.     echo((char)65);
    35.     echo((short)65);
    36.     echo((int)65); 
    37. }
    Khi chạy cho kết quả là
    Code:
    char:8
    short:16
    int:32
    
    [Program finished]
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi khoaph : 08-03-2020 lúc 09:00 PM.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn