Trang Chủ Tài chính Cá nhân 10 Cách để Customize Code :: Blocks - Dummies

10 Cách để Customize Code :: Blocks - Dummies

Mục lục:

Video: How To Change font Size of Code Blocks IDE | Computer Science Assignment Help | Codersarts 2025

Video: How To Change font Size of Code Blocks IDE | Computer Science Assignment Help | Codersarts 2025
Anonim

Mã:: Các khối đi kèm với các thiết lập mặc định tự nhiên nhất đối với hầu hết các ứng dụng C ++; tuy nhiên, khi bạn bắt đầu dành nhiều thời gian hơn trong môi trường, bạn có thể thấy Mã số:: Các khối có thể là địa điểm thân thiện hơn với chỉ một vài chỉnh sửa.

Sử dụng ký tự tab

Hoặc cụ thể hơn, không sử dụng ký tự tab. Cài đặt này không tạo ra sự khác biệt nếu bạn đang làm việc cho một dự án, trong đó tất cả mọi người sẽ luôn sử dụng Mã số:: Khối. Vấn đề với các ký tự tab, tuy nhiên, là các trình soạn thảo khác nhau có xu hướng giải thích các tab khác nhau. Một số biên tập viên di chuyển con trỏ tới tab dừng tiếp theo, một số biên tập viên di chuyển con trỏ qua một số ký tự và không phải tất cả các biên tập viên đều đồng ý về số ký tự phân bổ cho một tab. May mắn thay tất cả các biên tập viên giải thích không gian giống nhau vì vậy nó an toàn hơn nhiều khi nói với Code:: Blocks editor để luôn luôn sử dụng không gian và không bao giờ lưu các tab trong các tệp nguồn. Để thực hiện điều này, hãy chọn Cài đặt → Trình soạn thảo. Bây giờ chọn Cài đặt chung ở bên trái và đảm bảo rằng Sử dụng TAB Character sẽ không được chọn.

Làm nổi bật cú pháp thay đổi màu sắc của các loại cấu trúc khác nhau, sử dụng một màu cho từ khoá, màu khác cho tên biến, một phần thứ ba cho chuỗi ký tự, v.v … Điều này rất hữu ích trong việc tránh những lỗi ngớ ngẩn khi bạn gõ. Ví dụ: nếu bạn đánh vần sai một từ khóa, nó sẽ không xuất hiện trong màu từ khoá. Để bật tính năng này, chọn Cài đặt → Người biên soạn → Cú pháp tô sáng. Thông thường Mã:: Các khối có thể cho biết ngôn ngữ từ phần mở rộng của tên tệp tin. Nếu bạn đang sử dụng một phần mở rộng tệp không chuẩn, hãy chắc chắn thêm nó vào danh sách bằng cách chọn Filemasks. Ngoài ra, bạn có thể điều chỉnh các tùy chọn đánh dấu cú pháp từ cửa sổ này để phù hợp hơn với nhu cầu của bạn. Điều này đặc biệt quan trọng nếu bạn có một số vấn đề về thị giác, đặc biệt là bất kỳ hình thức mù màu nào.

Trình định dạng mã nguồn

Điều này có thể đã cũ, nhưng một lập trình tốt sẽ cho thấy một chút niềm tự hào trong sự xuất hiện của mã của ông. Điều này đòi hỏi việc tạo ra và tuân thủ vững chắc một tiêu chuẩn mã hóa. Hơn thế nữa, khi làm việc với một nhóm lớn, tất cả mọi người nên sử dụng cùng một tiêu chuẩn mã hóa. Nếu không, mã trông lộn xộn, vì các mô-đun được viết bởi một người có một cái nhìn và cảm xúc trong khi những bài viết của một đồng đội có một cái nhìn khác - rất không chuyên nghiệp.

Việc tuân thủ một tiêu chuẩn định dạng mã hóa rất dễ dàng trong Mã số:: Khối. Trình biên tập mã của nó sẽ định dạng lại mã của bạn để phù hợp với bất kỳ tiêu chuẩn mong muốn.

Mã:: Blocks định dạng mã nguồn sẽ không điều chỉnh tên biến. Thậm chí tệ hơn, nó sẽ không liên lạc logic chương trình của bạn. Vì vậy, nếu bạn viết mã crummy, không đổ lỗi cho nó trên Code:: Blocks editor.

Chọn Settings → Editor và sau đó chọn Source Formatter từ danh sách xuất hiện để có được một cửa sổ trông giống như Hình 1. Cửa sổ xem trước cho bạn thấy những lựa chọn của bạn sẽ như thế nào trong thực tế. Ví dụ này tuân theo tiêu chuẩn ANSI, nhưng bạn có thể chọn từ nhiều tiêu chuẩn chung khác, hoặc bạn có thể chọn Custom và sau đó nhấp vào tab Indentation và Formatting để tạo ra tiêu chuẩn của riêng bạn.

Hình 1: Thiết lập trình định dạng mã nguồn có thể giúp bạn áp dụng một cách mã hoá thống nhất.

Khi bạn đã chọn một tiêu chuẩn, trình biên tập sẽ cố gắng dỗ bạn sử dụng tiêu chuẩn đó. Ví dụ: nếu bạn nhập

nếu (đúng) và sau đó nhấn Enter, trình soạn thảo sẽ đặt con trỏ ở vị trí thụt xuống dưới nếu . Nếu bạn nhập một nẹp mở, trình soạn thảo sẽ sao lưu bạn, đặt nẹp phù hợp với i trong nếu , nhảy sang dòng tiếp theo, và thụt lề. Thậm chí tốt hơn nữa, khi đã hoàn tất mã hóa, nếu bạn chọn Plug In → Mã nguồn Mã Nguồn (AStyle), trình soạn thảo sẽ đi qua mô đun của bạn và áp dụng lại chuẩn mã nguồn hiện tại. Vì vậy nếu bạn làm việc của bạn không cẩn thận với các chương trình của bạn như bạn đã làm, đừng lo lắng - chỉ vài cú click chuột và tất cả đều được làm sạch.

Chữ viết tắt của mã

Đây là một tùy chọn kỳ lạ. Nếu bạn mã rất nhiều (đọc:

! ), viết tắt của mã có thể tiết kiệm thời gian, đặc biệt nếu bạn không phải là một người đánh máy rất tốt. Từ viết tắt mã cho phép bạn nhập một số từ mã và sau đó nhấn Ctrl + J, và voila, trình biên tập Code:: Blocks sẽ nhập mẫu tương ứng được xác định trước mà bạn điền vào. Ví dụ: nếu bạn nhập > class

trong một bản sao của Mã:: Blocks và sau đó nhập Ctrl + J, Mã:: Blocks lần đầu tiên sẽ yêu cầu bạn cho tên của lớp học của bạn và sau đó nó sẽ điền vào tất cả các công cụ thể hiện trong hình 2. < Hình 2: Sử dụng viết tắt mã nguồn có thể tiết kiệm rất nhiều thời gian nếu bạn có thể nhớ sử dụng nó! Mã:: Các khối đi kèm với bộ từ viết tắt đã được xác định, nhưng bạn có thể thêm tất cả chữ viết tắt bạn muốn bằng cách chọn Cài đặt → Trình soạn thảo và sau đó chọn tùy chọn Viết tắt ở phía bên trái của cửa sổ. Điều tốt về chữ viết tắt mã là nó có thể tiết kiệm rất nhiều đánh máy và tự động thực thi các tiêu chuẩn định dạng mã nguồn mà bạn chọn. Người đánh máy rất nhanh (hoặc có thể là keyboarder?) Có thể không nhận được nhiều lợi ích từ tính năng này, nhưng nếu bạn không sử dụng tất cả mười ngón tay khi bạn gõ hoặc bằng cách khác trên bàn phím, bạn có thể thử sử dụng tính năng này đặc tính.

Tự động Hoàn tất

Mã:: Các khối có tính năng mát mẻ này được gọi là Tự động Hoàn tất. Sau khi bạn gõ một số số lượng tối thiểu các chữ cái (mặc định là bốn, nhưng bạn thay đổi điều đó), nếu bạn tạm dừng trong gõ của bạn, Mã số:: Blocks sẽ tìm tất cả những thứ bắt đầu với những chữ cái.Bằng cách này, Mã số:: Các khối có thể dự đoán những gì bạn đang cố gắng nói.

Ví dụ: trong chương trình Budget5 được bao gồm trong tài liệu tải về từ Dummies. com, nếu bạn nhập

Acco

và sau đó tạm dừng chỉ nửa giây (không quá dài!), sau đó một cửa sổ bật lên như thể hiện trong hình 3 cung cấp hai điều duy nhất là Mã số:: Blocks knows about in chương trình này bắt đầu bằng Acco: tài khoản

Tài khoản và typedef AccountPtr . Vì bạn có nghĩa là Tài khoản , bạn chỉ có thể nhấn Enter và nó sẽ điền vào cho tôi. Hình 3: Mã:: Khối tìm thấy chỉ có hai trận đấu cho Acco trong chương trình này. Đầu tiên là những gì tôi đang tìm kiếm. Trong ví dụ này, bạn đang tạo một con trỏ tới Tài khoản

được gọi là

pAcc . Khi bạn gõ tiếp pAcc -> và sau đó tạm dừng, Mã:: Khối mở cửa sổ liệt kê các thành viên công khai Tài khoản như thể hiện trong hình 4. Hình 4: Cho một đối tượng, Mã số:: Các khối sẽ tìm thấy các thành viên công cộng có thể truy cập từ đối tượng đó. Đây là một tính năng thú vị khi đề cập đến các lớp học của bạn. Hơn bất cứ điều gì, chọn từ danh sách có nghĩa là bạn không gõ tên chức năng sai hoặc sai chính tả. Tính năng này thực sự trở nên thú vị khi bạn nhập một đối tượng được định nghĩa trong thư viện. Ví dụ: nếu bạn nhập

cout.

, bạn sẽ nhận được một danh sách các thành viên công khai có sẵn cho đối tượng

cout . Điều này có thể thực sự hữu ích khi bạn không có tài liệu hoặc bạn chỉ không biết bắt đầu từ đâu. Kích hoạt tất cả các cảnh báo Kích hoạt tất cả các cảnh báo là không có trí tuệ. Những sai sót xuất hiện trong thời gian biên dịch dễ dàng hơn (duh!) Và sửa chữa hơn những gì bạn phải đi săn tìm cho mình trong thời gian chạy. Đó là lý do tại sao C + + cú pháp là như vậy picky - nó muốn chắc chắn rằng bạn đã mã hoá chính xác những gì bạn dự định trước khi nó đi off và tạo ra một thực thi mà làm cái gì đó hoàn toàn khác nhau. Tuy nhiên, có một số điều, (thực sự là một vài điều) trình biên dịch GNU C ++ sẽ sửa và tiếp tục mà không có bình luận, nếu bạn muốn. Ví dụ, nó không phải là lỗi để xác định một biến trong một hàm và sau đó không bao giờ sử dụng nó. Hoặc để đặt trở lại ở giữa của một hàm để các dòng mã sau khi trả lại không bao giờ có thể được thực hiện. Đây không phải là lỗi, nhưng chúng trông có vẻ kỳ lạ đối với một trình biên dịch không tin cậy.

Trình biên dịch GNU sẽ tạo ra một cảnh báo nếu thấy một trong hai trường hợp này hoặc bất kỳ hàng chục cấu trúc đáng ngờ khác trong mã của bạn. Bạn nên đi qua mọi cảnh báo để đảm bảo rằng bạn hiểu những gì trình biên dịch đang phàn nàn về và tại sao. Hãy cố gắng khắc phục sự cố nếu bạn có thể nhưng hiểu nó ngay cả khi bạn chọn không sửa nó.

Cảnh báo sẽ phát hiện ra rất nhiều lỗi mà sẽ trở thành lỗi trong chương trình của bạn.

Tạo một mục tiêu xây dựng mới

Môi trường Code:: Blocks cho phép bạn tạo nhiều mục tiêu xây dựng. Một mục tiêu xây dựng cho phép bạn tạo một thực thi riêng biệt với cài đặt xây dựng duy nhất.Ví dụ, bạn chắc chắn sẽ muốn bao gồm thông tin biểu tượng trong tệp tin thực thi mà bạn sử dụng để gỡ lỗi nhưng không phải trong tệp tin mà bạn định gửi đến khách hàng (xem bên dưới để biết thêm).

Bạn có thể dễ dàng tạo ra một mục tiêu xây dựng Debug và một mục tiêu Xây dựng phát hành khi bạn tạo dự án - hãy để trình hướng dẫn thực hiện tất cả công việc cho bạn. Tuy nhiên, rất thường xảy ra rằng sau vài tuần làm việc và gỡ lỗi một dự án, bạn hãy phát hành nó chỉ để thấy rằng không có Release build target. Không phải lo lắng, bạn luôn có thể tạo một mục tiêu xây dựng mới một mình.

Để tạo mục tiêu xây dựng mới, chọn Dự án → Thuộc tính, sau đó chọn tab Mục tiêu xây dựng. Bạn sẽ thấy một cái gì đó trông giống như hình 5, trong đó cho thấy chương trình Budget5 với một mục tiêu Debug build.

Hình 5: Một trong những thuộc tính của dự án là danh sách các mục tiêu xây dựng.

Sử dụng các bước sau để tạo mục tiêu Phát hành phát hành:

Chọn Mục tiêu gỡ lỗi và nhấp vào Sao chép.

Nhập tên của mục tiêu xây dựng mới, Release.

Thay đổi tên tệp đầu ra thành binReleaseBudget5. exe và Directory đầu ra các đối tượng để objRelease.

  1. Nhấp vào Tùy chọn xây dựng để đặt bất kỳ tùy chọn xây dựng nào bạn muốn cho mục tiêu cụ thể này và nhấp vào OK.

  2. Bạn chắc chắn sẽ muốn tắt thông tin biểu tượng và bật tối ưu hóa.

  3. Nhấp vào OK để lưu mục tiêu xây dựng mới.

  4. Để xây dựng một mục tiêu xây dựng cụ thể, hãy chọn Xây dựng → Chọn Mục tiêu, sau đó chọn từ các mục tiêu có sẵn. Điều này hướng Mã số:: Khối như là tập tin thực thi bạn muốn tạo ra khi bạn chọn xây dựng.

    Project - enable optimizations

  5. Bạn có thể nghĩ rằng mỗi dòng của mã C ++ tạo ra một bộ hướng dẫn máy mà không cần quan tâm đến các dòng mã xung quanh, và ở chế độ không tối ưu bạn sẽ đúng. Trình tối ưu hoá được tích hợp vào trình biên dịch GNU có thể tạo ra một chương trình hiệu quả hơn từ nguồn C ++ của bạn bằng cách xem qua nhiều dòng mã.

Hãy xem xét ví dụ nhỏ và hoàn chỉnh (và minh hoạ) sau đây:

// i ++; MOV EAX, i [BP] INC EAX MOV i [BP], EAX // fn (i) MOV EAX, i [BP] PUSH EAX CALL FN

Dòng

i ++

đã được chuyển đổi thành ba dòng mã máy được thực hiện:

Nạp giá trị của i vào sổ đăng ký EAX.

  1. Tăng đăng ký EAX. Lưu giá trị gia tăng trở lại vào i

  2. Dòng tiếp theo chuyển đổi cuộc gọi fn (i) thành những điều sau.

    Nạp giá trị của i vào sổ đăng ký EAX.

  3. Đẩy giá trị EAX lên ngăn xếp. Thực hiện cuộc gọi. Lưu ý rằng Bước 4 thực sự không cần thiết. Không cần tải giá trị của

  4. i

  5. vào sổ đăng ký EAX bởi vì giá trị đã có từ các Bước 1, 2, và 3. Ngay cả một trình tối ưu hóa trung bình sẽ nhận thấy sự kiện này và không tạo ra

thứ hai < MOV EAX, i [BP] . Đây không phải là tiết kiệm nhiều, nhưng ví dụ này rất dễ hiểu, ngay cả khi nó không phải là một cải tiến lớn. Bạn sẽ cần phải là một whiz thực tại ngôn ngữ lắp ráp để hiểu hầu hết các tối ưu hóa mà trình biên dịch GNU làm. Bạn có thể bật tối ưu hóa cho một bản dựng cụ thể bằng cách chọn Dự án → Xây dựng các Tùy chọn, sau đó chọn Bản phát hành bên trái và chọn một trong các tùy chọn tối ưu hóa. Về mặt kỹ thuật, có một số tùy chọn tối ưu hóa vì trình tối ưu hoá có thể mất rất nhiều thời gian. Nếu bạn có một dự án rất lớn, không có nhiều điểm trong việc dành nhiều thời gian tối ưu hóa một mô-đun sẽ không được thực hiện rất thường xuyên. Đối với các dự án vừa và nhỏ, chỉ cần tối ưu hóa đầy đủ - bạn sẽ không nhận thấy thêm vài giây để biên dịch.

Bạn có thể bật tùy chọn này cho tất cả các bản xây dựng bằng cách chọn Cài đặt → Trình biên dịch, sau đó chọn tab Trình biên dịch và chọn một trong các trường hợp Tối ưu hóa; tuy nhiên, đây không phải là một ý tưởng tốt. Không cho phép tối ưu hóa trong bản phát hành Gỡ lỗi của dự án nếu bạn định sử dụng trình gỡ lỗi. Những thay đổi cho mã mà trình tối ưu hóa thực hiện sẽ làm cho chương trình xuất hiện để nhảy xung quanh trong một đi bộ bán ngẫu nhiên khi bạn cố gắng bước qua nó.

Dự án - vô hiệu hoá các biểu tượng trình gỡ rối

Thông tin về biểu tượng được bao gồm trong tệp thực thi chỉ dành cho việc sử dụng trình gỡ lỗi. Thông tin này không được bao gồm trong phiên bản bạn gửi cho người dùng: Nó làm tăng kích thước của tệp thi hành không cần thiết và, còn tệ hơn là, nó phát hành thông tin nguy hiểm cho các hacker nên cố gắng tìm một lỗ hổng trong chương trình của bạn.

Để vô hiệu hóa thông tin gỡ lỗi trong mục tiêu Phát hành bản phát hành, chọn Dự án → Các tùy chọn xây dựng, sau đó chọn Đối tượng giải phóng ở bên trái. Bây giờ hãy đảm bảo rằng tùy chọn Produce Debugging Symbols [-g] đã được nhấp vào cho mục tiêu Release. (Bây giờ là thời điểm tốt để đảm bảo rằng tùy chọn này cũng được kích hoạt cho mục tiêu xây dựng Debug).

Dự án - thiết lập các đối số của chương trình

Một số chương trình được thực hiện với các đối số dòng lệnh. Mã:: Blocks cung cấp cơ chế sau đây để cung cấp các đối số dòng lệnh khi thực thi một chương trình như vậy từ bên trong Mã:: Blocks environment:

Chọn Project → Set Programming Arguments.

Chọn mục tiêu xây dựng trong cửa sổ phía trên.

Nhập bất cứ điều gì bạn thích trong cửa sổ Lập chỉ dẫn chương trình.

  1. Chọn OK để đóng cửa sổ.

  2. Khi bạn nhập Start hoặc Run, Mã số:: Các khối sẽ cung cấp các đối số cho chương trình của bạn.

10 Cách để Customize Code :: Blocks - Dummies

Lựa chọn của người biên tập

Làm thế nào để Lưu tệp vào OneDrive từ iPad của bạn - núm vú

Làm thế nào để Lưu tệp vào OneDrive từ iPad của bạn - núm vú

Chia sẻ là chăm sóc và bạn có thể lưu tệp Word, Excel hoặc PowerPoint vào iPad hoặc máy tính để bàn của bạn trực tiếp vào thư mục OneDrive. Sau khi tệp tin trên OneDrive, những người khác có quyền truy cập vào thư mục trên OneDrive có thể mở tệp. Họ có thể mở nó trong Văn phòng cho ứng dụng iPad, Office ...

Làm thế nào để liên kết đến một tập tin cục bộ trong Office 2011 for Mac - núm vú

Làm thế nào để liên kết đến một tập tin cục bộ trong Office 2011 for Mac - núm vú

Một trong các công cụ hữu ích nhất trong Office 2011 cho mac là khả năng tạo siêu liên kết đến bất cứ đâu. Bạn có thể liên kết đến bất kỳ tập tin nào trên máy tính của bạn; những tập tin này là các tập tin địa phương. Để kết nối với các tệp cục bộ, bạn có thể sử dụng hai loại liên kết: Tuyệt đối: Loại liên kết này có chứa ...

Cách đăng nhập vào OneDrive từ phần mềm

Cách đăng nhập vào OneDrive từ phần mềm

OneDrive là một thành phần của Office 365, Dịch vụ trực tuyến của Microsoft. Trước khi bạn có thể lưu trữ, chia sẻ, hoặc đồng chỉnh sửa các tập tin trên OneDrive từ iPad, bạn phải đăng nhập vào OneDrive. Đọc tiếp để tìm hiểu cách đăng nhập từ Office cho iPad và đăng nhập từ một trình duyệt web. OneDrive ...

Lựa chọn của người biên tập

Cách sắp xếp các tệp phương tiện cho WordPress Blog của bạn - núm vú

Cách sắp xếp các tệp phương tiện cho WordPress Blog của bạn - núm vú

Nếu bạn đã chạy blog của bạn trong bất kỳ khoảng thời gian nào, bạn có thể dễ dàng quên những tệp bạn đã tải lên bằng trình tải lên WordPress. Thư viện Truyền thông WordPress giúp bạn dễ dàng và dễ dàng khám phá những tệp nào trong thư mục Uploads của bạn. Để tìm tệp hình ảnh, video hoặc âm thanh mà bạn đã tải lên bằng cách sử dụng <

Làm thế nào để tối ưu Blog WordPress của bạn cho Công cụ Tìm kiếm - núm vú

Làm thế nào để tối ưu Blog WordPress của bạn cho Công cụ Tìm kiếm - núm vú

Bạn muốn mọi người tìm thấy blog WordPress của bạn, nếu không bạn sẽ không dành thời gian để viết nó. WordPress được trang bị để tạo ra một môi trường thân thiện với các công cụ tìm kiếm, cho phép họ điều hướng dễ dàng thông qua các kho lưu trữ, các loại và các trang của bạn. WordPress cung cấp môi trường này với một cơ sở mã sạch, nội dung dễ dàng cập nhật thông qua ...

Làm thế nào để Thực hiện Từ khoá trong trang WordPress của bạn với Permalinks

Làm thế nào để Thực hiện Từ khoá trong trang WordPress của bạn với Permalinks

Cho thứ hạng cao hơn cho trang web WordPress của bạn, sử dụng các liên kết tùy chỉnh với từ khoá. Bằng cách sử dụng các liên kết tuỳ chỉnh, bạn tự động chèn từ khoá vào URL của các bài đăng và trang của bạn, cho phép các công cụ tìm kiếm bao gồm các bài đăng và trang đó trong cơ sở dữ liệu thông tin về những chủ đề đó. Nếu trang web của bạn được lưu trữ bởi nhà cung cấp có

Lựa chọn của người biên tập

Làm thế nào để gửi chú thích để chia sẻ chúng trong OneNote 2013 - núm vú

Làm thế nào để gửi chú thích để chia sẻ chúng trong OneNote 2013 - núm vú

Một trong những phương pháp đơn giản chia sẻ một ghi chú với OneNote 2013 bằng cách gửi nó dưới dạng tệp tin tới người nhận e-mail hoặc thậm chí với Microsoft Word hoặc blog của bạn. Để gửi lưu ý hiện tại dưới dạng tệp tin, hãy làm theo các bước sau: Mở ghi chú mà bạn muốn chia sẻ trong OneNote 2013 và chọn <...

Làm thế nào để Đồng bộ hóa Ghi chú trong OneNote 2013 - núm vú

Làm thế nào để Đồng bộ hóa Ghi chú trong OneNote 2013 - núm vú

OneNote 2013 khoảng cách bản thân từ khái niệm toàn bộ các tệp lưu thủ công trong lợi của đồng bộ hóa chúng. Bạn có thể đồng bộ tập tin tự động hoặc thủ công. Điều này cho phép bạn tự do khi quản lý các tệp của mình. Làm thế nào để đồng bộ tự động trong OneNote OneNote tự động lưu các ghi chú của bạn mỗi khi bạn thực hiện bất kỳ thay đổi ở tất cả để một máy tính xách tay, phần, ...

Cách Quản lý Máy tính xách tay OneNote 2013 với SkyDrive - núm vú

Cách Quản lý Máy tính xách tay OneNote 2013 với SkyDrive - núm vú

SkyDrive có thể truy cập qua đám mây, 't có một ứng dụng SkyDrive được cài đặt trên thiết bị. Điều này giúp bạn dễ dàng quản lý máy tính xách tay OneNote 2013 từ bất kỳ thiết bị nào có truy cập internet. Cách quản lý máy tính xách tay với SkyDrive trên web Bạn có thể truy cập dịch vụ từ bất cứ thiết bị nào bạn đang sử dụng miễn là nó hỗ trợ