Aracılığıyla paylaş


C/C++ makro genişletmesini görselleştirme

Uzun makroları okumak zor olabilir. Visual Studio artık C ve C++ makrolarını genişletebilir. Genişletilmiş makronun nasıl göründüğünün bir kopyasını panoya alabilir, satır içi makroyu genişletmesiyle değiştirebilir ve genişletmenin her aşamasında nasıl göründüğünü görmek için bir makroyu adım adım genişletebilirsiniz. Bu makalede, bu özelliklerin tümüyle denemeler gerçekleştirebilirsiniz.

Önkoşullar

  • Visual Studio sürüm 17.5 veya üzeri

Örneği oluşturma

  1. Visual Studio 2022, sürüm 17.5 veya üzerini başlatın ve bir C++ Konsol uygulaması oluşturun.

  2. Varsayılan kodu şununla değiştirin:

    #include <iostream>
    
    #define MASS 10.0
    #define ACCELERATION 20.0
    #define SPEED 5.0
    #define TIME 2.0
    #define DISTANCE() (SPEED * TIME)
    #define FORCE()(MASS * ACCELERATION)
    #define WORK()(FORCE() * DISTANCE())
    #define POWER()(WORK()/TIME)
    
    int main()
    {
        std::cout << "Distance: " << DISTANCE() << std::endl;
        std::cout << "Force: " << FORCE() << std::endl;
        std::cout << "Work: " << WORK() << std::endl;
        std::cout << "Power: " << POWER() << std::endl;
    }
    

Genişletilmiş makro kopyalama

Aşağıdaki adımları kullanarak, birkaç ön işlemci adımı söz konusu olsa bile makronun genişletilmiş değerini inceleyebilirsiniz:

  1. İmleci örnekteki makronun POWER içine main() yerleştirin.

  2. Makronun üzerine geldiğinizde Kopyala, Satır İçi Genişlet, Genişletmeyi Görselleştir ve Çevrimiçi Ara seçenekleri görüntülenir:

    Screenshot of the macro window, showing the POWER macro expansion.

    Makro penceresi, ((10.0 * 20.0) * (5.0 * 2.0)) / 2.0'a genişletildiğini göstermek için POWER'de açıktır. Pencerenin alt kısmında kopyalama, satır içi genişletme, görsel genişletme ve çevrimiçi arama seçenekleri görüntülenir.

  3. Kopyala'yı seçin.

  4. Satırın ardından POWER bir açıklama oluşturun ve yapıştır 'ı (CTRL+V) seçin. Makronun genişletilmesi, makronuzun yakınında bir açıklama olarak şöyle görünür: // (((10.0 * 20.0)* (5.0 * 2.0)) / 2.0). Bu eylemin klavye kısayolu CTRL+M, CTRL+C şeklindedir.

Makro satır içi genişletme

Makroyu genişletmesiyle değiştiren satır içi makroyu genişletmek için aşağıdaki adımları kullanın:

  1. İmleci örnekteki makronun POWER içine main() yerleştirin.
  2. Makronun üzerine geldiğinizde Kopyala, Satır İçi Genişlet, Genişletmeyi Görselleştir ve Çevrimiçi Ara seçenekleri görüntülenir
  3. Satır içi genişlet'i seçin. Makro POWER() genişletilmiş değeriyle değiştirilir: std::cout << "Power: " << (((10.0 * 20.0) * (5.0 * 2.0)) / 2.0) << std::endl;. Bu eylemin klavye kısayolu CTRL+M, CTRL+I şeklindedir.

Makro genişletmeyi görselleştirme

Makroları her seferinde bir adım genişletebilirsiniz. bu, iç içe makrolar olduğunda ve genişletmeyi adım adım görmek istediğinizde kullanışlıdır. Makro genişletmesini WORK görselleştirmek için aşağıdaki adımları kullanın:

  1. İmleci örnekteki makronun WORK içine main() yerleştirin.

  2. Makronun üzerine geldiğinizde Kopyala, Satır İçi Genişlet, Genişletmeyi Görselleştir ve Çevrimiçi Ara seçenekleri görüntülenir.

  3. Genişletmeyi Görselleştir'i seçin. Bu eylemin klavye kısayolu CTRL+M ve ardından CTRL+V tuşlarına basın.

  4. Makro genişletme penceresi görüntülenir. Makronun WORK ilk genişlemesi görünür: : (FORCE() * DISTANCE())

    Screenshot of the macro expansion window, which allows you to step through the WORK macro expansion one step at a time.

    Makro görselleştirme penceresi, başlangıçta (FORCE()*DISTANCE()) olarak genişletildiğini göstermek için FORCE üzerinde açıktır. Pencerede tek seferde tek bir genişletmeyi ileri ve geri taşımak için tek açılı ayraçlar bulunur. Çift açılı köşeli ayraçlar makro genişletmeyi tamamen genişletir veya tamamen geri alır.

  5. Makroyu genişletmek için sağ açılı köşeli ayraç tıklayın FORCE . Pencerede artık makro genişletmesi FORCE gösterilir: (MASS * ACCELERATION) * DISTANCE().

  6. Başka bir adımı genişletmek için sağ açılı köşeli ayraç tıklayın. Pencerede artık makro genişletmesi FORCE gösterilir: ((10.0 * ACCELERATION) * DISTANCE()).

Makronun tam genişlemesini görmek için makroyu genişletmeye WORK devam edin; yani: ((10.0 * 20.0) * (5.0 * 2.0)). Makroyu tamamen genişletmek veya genişletmeyi ilk genişletme düzeyine ters çevirmek için çift açılı ayraçları kullanabilirsiniz.

Ayrıca bkz.

Visual Studio'da UE makrolarını görüntüleme